Si vous ne le codez qu'occasionnellement, vous l'oublierez vite.
Il y a des moments où un seul * (astérisque) est spécifié dans l'argument de la définition de la fonction Python (parfois lorsque vous regardez la source de la bibliothèque standard):
def connect_accepted_socket(self, protocol_factory, sock, *, ssl=None):
c'est,
Les arguments après «» et « identificateur» sont des arguments de mots-clés uniquement et sont transmis uniquement en utilisant des arguments de mots-clés.
http://docs.python.jp/3/reference/compound_stmts.html#function-definitions
En d'autres termes, si vous mettez *,
entre les deux, les arguments qui suivent sont "uniquement acceptés comme arguments de mot-clé" (non acceptés comme arguments de position).
>>> 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
Le mot "astérisque" sert à la recherche. Juste au cas où vous oublieriez le fait que vous avez fait ce post vous-même.
Recommended Posts