@ 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.
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.
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
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.
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.
In @ shiracamus 'Kommentar habe ich gelernt, wie man die Mischung aus Positionsargumenten / Schlüsselwortargumenten verwendet.
Danke für die Information.
Recommended Posts