Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter

Python-Funktionsargumente meistern

Entdecken Sie, wie Sie Funktionen entwerfen, die variable Anzahlen von Argumenten in Python akzeptieren – mittels Defaults, Keywords und beliebigen Parametern für saubereren, anpassungsfähigeren Code.

Video: Python Funktionsargumente: Positional, Keywords und Default

Argumente

Im Thema benutzerdefinierte Funktionen haben wir das Definieren und Aufrufen von Funktionen behandelt. Ein Aufruf, der nicht der erwarteten Signatur entspricht, löst einen Fehler aus. Zum Beispiel:

def greet(name, msg):
    """This function greets the person with the provided message."""
    print("Hello", name + ", " + msg)
greet("Monica", "Good morning!")

Ausgabe

Hello Monica, Good morning!

Die greet()-Funktion akzeptiert zwei Parameter. Der Aufruf mit der korrekten Argumentanzahl läuft reibungslos; andernfalls meldet der Interpreter einen TypeError mit klarer Meldung.

>>> greet("Monica") # nur ein Argument
TypeError: greet() missing 1 required positional argument: 'msg'
>>> greet() # keine Argumente
TypeError: greet() missing 2 required positional arguments: 'name' and 'msg'

Variable Funktionsargumente

Python bietet flexible Wege, eine variable Anzahl von Argumenten zu akzeptieren. Drei gängige Muster werden unten behandelt.

Python Default-Argumente

Parametern können Standardwerte mittels Zuweisungsoperator (=) gegeben werden. Das folgende Beispiel demonstriert, wie eine optionale Nachricht auf „Good morning!“ defaultet:

def greet(name, msg="Good morning!"):
    """
    This function greets the person with the provided message.
    If the message is not supplied, it defaults to "Good morning!".
    """
    print("Hello", name + ", " + msg)
greet("Kate")
greet("Bruce", "How do you do?")

Ausgabe

Hello Kate, Good morning!
Hello Bruce, How do you do?

In dieser Definition ist name verpflichtend, während msg optional ist. Wenn ein Default-Argument vorhanden ist, müssen alle nachfolgenden Parameter ebenfalls Defaults haben; andernfalls tritt ein SyntaxError auf.

def greet(msg = "Good morning!", name): pass
SyntaxError: non-default argument follows default argument

Python Keyword-Argumente

Python erlaubt Aufrufern, Argumente namentlich anzugeben, was die Positionsreihenfolge flexibel macht. Die gleiche greet()-Funktion kann wie folgt aufgerufen werden:

# 2 Keyword-Argumente
greet(name = "Bruce", msg = "How do you do?")
# 2 Keyword-Argumente (in anderer Reihenfolge)
greet(msg = "How do you do?", name = "Bruce")
# 1 positionales, 1 Keyword-Argument
greet("Bruce", msg = "How do you do?")

Das Mischen von positionalen und Keyword-Argumenten ist nur erlaubt, wenn alle positionalen Argumente den Keyword-Argumenten vorangehen; andernfalls resultiert ein SyntaxError.

greet(name="Bruce","How do you do?")
SyntaxError: non-keyword arg after keyword arg

Python Beliebige Argumente

Wenn die Anzahl der Argumente zur Entwurfszeit unbekannt ist, verwenden Sie einen Stern (*), um sie als Tupel zu erfassen:

def greet(*names):
    """Greets each name in the supplied tuple."""
    for name in names:
        print("Hello", name)
greet("Monica", "Luke", "Steve", "John")

Ausgabe

Hello Monica
Hello Luke
Hello Steve
Hello John

Innerhalb der Funktion ist names ein Tupel, das alle übergebenen Argumente enthält, das dann iteriert oder verarbeitet werden kann.

Python

  1. Python-Datentypen meistern: Praxisleitfaden
  2. Python-Operatoren meistern: Umfassender Leitfaden
  3. Python pass-Statement meistern: Praxisleitfaden
  4. Python Lambda-Funktionen: Praxisleitfaden zu anonymen Funktionen
  5. Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
  6. Python Generatoren: Effiziente Iteration und fortgeschrittene Anwendungsfälle
  7. Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
  8. Python Decorators meistern: Funktionen mit Experten-Techniken erweitern
  9. Pythons strip()-Methode meistern: Umfassender Leitfaden & Praxisbeispiele
  10. Python Lambda-Funktionen meistern: Praxisbeispiele & Best Practices