Python> Positionsargumente / Schlüsselwortargumente> mixable> print (2, 3, 5, 7, 11, sep = '\ t', end = '')

@ Introducing Python: Modern Computing in Simple Packages by Bill Lubanovic (No. 2503 / 12833)

Es gibt die folgenden zwei Argumente.

https://docs.python.jp/3/glossary.html

Positionsargument Aktuelles Argument Bitte beziehen Sie sich auf.

...

keyword argument Aktuelles Argument Bitte beziehen Sie sich auf.

...

You can mix positional and keyword arguments.

Zwei Argumente mischen> Fehler

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)

Ergebnis


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

Das Positionsargument ist nach dem Schlüsselwortargument nicht gut.

Zwei Argumente mischen> Erfolg

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")

Ergebnis


Success	time: 0 memory: 23288 signal:0
pi: 3.1415
napier: 2.718

Nebenbei> Bemerkungen

Warum sollte es kein Schlüsselwortargument oder Positionsargument sein?

Ich denke, es ist schwierig zu sagen, welcher Index das Argument ist, wenn das Positionsargument am Ende ist.

Wenn es zuerst ein Positionsargument gibt, wird es nacheinander aus 0 im Index bestimmt, und wenn es in der Mitte zu einem Schlüsselwortargument wird, ist es möglich, das Schlüsselwortargument von dort aus zu verarbeiten.

Ob Mix verwendet werden soll

Ich persönlich möchte es nicht verwenden (Stand 29. März 2017). Ich bin der Meinung, dass die Quelle schwer zu lesen ist, weil sie inkonsistent ist.

Wenn Sie es gut verwenden können, können Sie es verwenden.

Angelegenheiten gelehrt

In @ shiracamus 'Kommentar habe ich gelernt, wie man die Mischung aus Positionsargumenten / Schlüsselwortargumenten verwendet.

Danke für die Information.

Recommended Posts

Python> Positionsargumente / Schlüsselwortargumente> mixable> print (2, 3, 5, 7, 11, sep = '\ t', end = '')
Positionsargument, Schlüsselwortargument, Standardargument
Schlüsselwortargumente für Python-Funktionen
[Einführung in Udemy Python3 + Application] 50. Positionsargumente, Schlüsselwortargumente und Standardargumente
Ich möchte mich mit Schlüsselwortargumenten von Python merken