@ Introducing Python: Modern Computing in Simple Packages by Bill Lubanovic (No. 2503 / 12833)
Il y a les deux arguments suivants.
https://docs.python.jp/3/glossary.html
Argument de position Argument réel Prière de se référer à.
...
keyword argument Argument réel Prière de se référer à.
...
You can mix positional and keyword arguments.
http://ideone.com/bfvZTn
def check_inputs(name1, value1, name2, value2):
print('%s: %s' % (name1, value1))
print('%s: %s' % (name2, value2))
# mixing of [keyword] and [positional] arguments
check_inputs(value1=3.1415, name1="pi", "napier", 2.718)
résultat
Compilation error time: 0 memory: 23288 signal:0
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python2.7/py_compile.py", line 117, in compile
raise py_exc
py_compile.PyCompileError: File "prog.py", line 6
check_inputs(value1=3.1415, name1="pi", "napier", 2.718)
SyntaxError: non-keyword arg after keyword arg
L'argument positionnel n'est pas bon après l'argument mot-clé.
http://ideone.com/Kcwf5Q
def check_inputs(name1, value1, name2, value2):
print('%s: %s' % (name1, value1))
print('%s: %s' % (name2, value2))
# mixing of [positional] and [keyword] arguments
check_inputs("pi", 3.1415, value2=2.718, name2="napier")
résultat
Success time: 0 memory: 23288 signal:0
pi: 3.1415
napier: 2.718
Pourquoi ne devrait-il pas s'agir d'un argument mot-clé ou d'un argument positionnel?
Je pense qu'il est difficile de dire quel index est l'argument si l'argument positionnel est à la fin.
S'il y a d'abord un argument de position, il est déterminé séquentiellement à partir de 0 dans l'index, et s'il devient un argument de mot-clé au milieu, il est possible de traiter l'argument de mot-clé à partir de là.
Personnellement, je ne souhaite pas l'utiliser (au 29 mars 2017). Je pense que la source est difficile à lire car elle est incohérente.
Si vous pouvez bien l'utiliser, vous pouvez l'utiliser.
Le [Comment] de @ shiracamus (http://qiita.com/7of9/items/6fff5853cf3886a1a67a/#comment-2979bd5a2efcd5d616a8) m'a appris à utiliser le mélange d'arguments positionnels / arguments de mots clés.
Merci pour l'information.
Recommended Posts