Zusammenfassung der Python-Argumente

Einführung

Python-Argumente, aber Positionsargumente, Schlüsselwortargumente, Nur-Schlüsselwort-Argumente Ich war verwirrt darüber, dass ich mit \ *, ** mehrere Argumente erhalten habe, also habe ich es geklärt.

Positionsargument

def f(a, b):
  return a, b
f(1, 2)
=======================
(1, 2)

Zuweisen durch Angabe eines Arguments (Schlüsselwortargument)

Argumente, die wie a = 1 übergeben werden, werden als Schlüsselwortargumente bezeichnet, und die Reihenfolge, in der sie übergeben werden, ist irrelevant.

def f(a, b):
  return a, b
f(b=2, a=1)
=======================
(1, 2)

Sie können kein Positionsargument nach einem Schlüsselwortargument übergeben.

def f(a, b):
  return a, b
f(b=2, 1)
=======================
SyntaxError: positional argument follows keyword argument

Empfangen Sie Argumente variabler Länge als Tupel und Diktate mit \ *, **

Sie können * verwenden, um Argumente variabler Länge als Tupel zu übergeben.

def f(a, b, *c):
  return a, b, c
f(1, 2, 3, 4)
=======================
(1, 2, (3, 4))

Sie können ** verwenden, um Schlüsselwortargumente variabler Länge als Diktat zu übergeben.

def f(a, b, **c):
  return a, b, c
f(1, 2, x=3, y=4)
=======================
(1, 2, {'x': 3, 'y': 4})

Positionsargumente können nach Argumenten mit \ * nicht zugewiesen werden.

def f(a, *b, c):
  return a, b, c
f(1, 2, 3, 4)
=======================
TypeError: f() missing 1 required keyword-only argument: 'c'

Es scheint, dass nach ** weder Positionsargumente noch Schlüsselwortargumente zugewiesen werden können.

def f(a, **b, c):
  return a, b, c
f(1, x=2, y=3, c=4)
=======================
SyntaxError: invalid syntax

Nur-Schlüsselwort-Argumente

Sie können jetzt nur Schlüsselwortargumente aus Python 3 angeben. Argumente, die nach einem Argument mit einem führenden * stehen, können nur als Schlüsselwortargument zugewiesen werden. Im Folgenden sollte c als Schlüsselwortargument anstelle eines Positionsarguments zugewiesen werden.

def f(a, *b, c):
  return a, b, c
f(1, 2, 3, c=4)
=======================
(1, (2, 3), 4)

Wenn Sie keine Positionsargumente variabler Länge verwenden, geben Sie * allein an. Die nachfolgenden Argumente sind reine Schlüsselwortargumente.

def f(a, *, b):
  return a, b
f(1, 2)
=======================
TypeError: f() takes 1 positional argument but 2 were given
def f(a, *, b):
  return a, b
f(1, b=2)
=======================
(1, 2)

Nur-Position-Argumente

Wie ich Ihnen in den Kommentaren sagte, scheint es auch nur Positionsargumente zu geben. https://docs.python.org/ja/3/tutorial/controlflow.html#positional-only-parameters

def f(x, y):
  print(x, y)
f(y=456, x=123)
============================
123 456

def f(x, y, /):
  print(x, y)
f(y=456, x=123)
============================
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: f() got some positional-only arguments passed as keyword arguments: 'x, y'

f(x=123, y=456)
============================
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: f() got some positional-only arguments passed as keyword arguments: 'x, y'

f(123, 456)
============================
123 456

Um diese Zeit, als ich von anderen Leuten darauf hingewiesen wurde, dachte ich, es könnte eine gute Studie sein, weil es peinlich war.

Recommended Posts

Zusammenfassung der Python-Argumente
Zusammenfassung der Python-Dateivorgänge
Zusammenfassung der Python3-Listenoperationen
Python-Zusammenfassung
Eine kurze Zusammenfassung der Python-Sammlung
Zusammenfassung der Python-Indizes und -Slices
[OpenCV; Python] Zusammenfassung der Funktion findcontours
Zusammenfassung des Python-Tutorials
Python-Grundlagen ①
Grundlagen von Python ①
Kopie von Python
Python-bezogene Zusammenfassung
Zusammenfassung der Python-Grundlagen
Einführung von Python
[Python] Zusammenfassung der Verwendung von Pandas
Zusammenfassung verschiedener for-Anweisungen in Python
[Python2.7] Zusammenfassung der Verwendung von unittest
Zusammenfassung der integrierten Methoden usw. der Python-Liste
Zusammenfassung nützlicher Techniken von Scrapy in Python
Zusammenfassung der Verwendung der Python-Liste
[Python2.7] Zusammenfassung der Verwendung des Unterprozesses
Zusammenfassung der Achsenoptionsspezifikation von Python "numpy.sum (...)"
[Python] Operation der Aufzählung
Über Funktionsargumente (Python)
Zusammenfassung des Python Django-Tutorials
Zusammenfassung der Korrespondenz zwischen Ruby- und Python-Array-Operationen
Tensorflow / Keras-Zusammenfassung
Vereinheitlichung der Python-Umgebung
Zusammenfassung der Unterschiede zwischen PHP und Python
Kopie der Python-Einstellungen
Zusammenfassung zum Importieren von Dateien in Python 3
Grundlagen der Python-Scraping-Grundlagen
Zusammenfassung der Verwendung von pyenv
[Python] Verhalten von Argmax
Zusammenfassung über Python3 + OpenCV3
Verwendung von Python-Einheimischen ()
der Zen von Python
Zusammenfassung der Verwendung von MNIST mit Python
Zusammenfassung der Python-Funktionsargumente
Installation von Python 3 und Flask [Zusammenfassung der Umgebungskonstruktion]
Installieren von Python 3.3 rc1
Zusammenfassung der Python-Verzeichnisoperationen
Zusammenfassung des Python AI-Frameworks
Zusammenfassung der Python-iterativen Verarbeitung
Zusammenfassung der Zeichenfolgenoperationen
[Python] Zusammenfassung der S3-Dateivorgänge mit boto3
# 4 [Python] Grundlagen der Funktionen
Zusammenfassung häufig verwendeter Python-Arrays (für mich)
Grundkenntnisse in Python
Nüchterne Trivia von Python3
Zusammenfassung des Studiums von Python zur Verwendung von AWS Lambda
E / A-bezogene Zusammenfassung von Python und Fortan
Grundlagen von Python: Ausgabe
Installation von matplotlib (Python 3.3.2)
Anwendung von Python 3 vars
Wörterbuch der Schlüsselwortargumente