Wenn Sie es nur gelegentlich codieren, werden Sie es bald vergessen.
Es gibt Zeiten, in denen nur ein * (Sternchen) im Argument in der Python-Funktionsdefinition angegeben ist (manchmal, wenn Sie sich die Quelle der Standardbibliothek ansehen):
def connect_accepted_socket(self, protocol_factory, sock, *, ssl=None):
das ist,
Die Argumente nach "" und " identifier" sind reine Schlüsselwortargumente und werden nur mit Schlüsselwortargumenten übergeben.
http://docs.python.jp/3/reference/compound_stmts.html#function-definitions
Mit anderen Worten, wenn Sie "*" dazwischen setzen, werden die Argumente danach "nicht akzeptiert, es sei denn, es handelt sich um Schlüsselwortargumente" (nicht als Positionsargumente akzeptiert).
>>> def foobar(a, b, *, c=False):
... print(a if c else b)
...
>>> foobar(1, 2)
2
>>> foobar(1, 2, c=True)
1
>>> foobar(1, 2, True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: foobar() takes 2 positional arguments but 3 were given
Das Wort "Sternchen" steht für die Suche. Nur für den Fall, dass Sie die Tatsache vergessen, dass Sie diesen Beitrag selbst gemacht haben.
Recommended Posts