Python> arguments de position / arguments de mots clés> mixable> print (2, 3, 5, 7, 11, sep = '\ t', end = '')

@ 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.

Mélanger deux arguments> Échec

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é.

Mélanger deux arguments> Succès

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

À part> Remarques

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à.

Utiliser ou non le mix

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.

Matières enseignées

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

Python> arguments de position / arguments de mots clés> mixable> print (2, 3, 5, 7, 11, sep = '\ t', end = '')
Argument de position, argument de mot-clé, argument par défaut
Arguments de mots-clés pour les fonctions Python
[Introduction à Udemy Python3 + Application] 50. Arguments de position, arguments de mots-clés et arguments par défaut
Je veux mémoriser, y compris les arguments de mots clés de Python