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

Python-Funktionsargumente

Python-Funktionsargumente

In Python können Sie eine Funktion definieren, die eine variable Anzahl von Argumenten akzeptiert. In diesem Artikel lernen Sie, solche Funktionen mit Standard-, Schlüsselwort- und beliebigen Argumenten zu definieren.

Video:Python-Funktionsargumente:Position, Schlüsselwörter und Standard

Argumente

Im Thema benutzerdefinierte Funktionen haben wir gelernt, wie man eine Funktion definiert und aufruft. Andernfalls führt der Funktionsaufruf zu einem Fehler. Hier ist ein Beispiel.

def greet(name, msg):
    """This function greets to
    the person with the provided message"""
    print("Hello", name + ', ' + msg)

greet("Monica", "Good morning!")

Ausgabe

Hello Monica, Good morning!

Hier die Funktion greet() hat zwei Parameter.

Da wir diese Funktion mit zwei Argumenten aufgerufen haben, läuft sie flüssig und wir bekommen keinen Fehler.

Wenn wir es mit einer anderen Anzahl von Argumenten aufrufen, zeigt der Interpreter eine Fehlermeldung an. Unten ist ein Aufruf dieser Funktion mit einem und keinem Argument zusammen mit den entsprechenden Fehlermeldungen.

>>> greet("Monica")    # only one argument
TypeError: greet() missing 1 required positional argument: 'msg'
>>> greet()    # no arguments
TypeError: greet() missing 2 required positional arguments: 'name' and 'msg'

Variable Funktionsargumente

Bisher hatten Funktionen eine feste Anzahl von Argumenten. In Python gibt es andere Möglichkeiten, eine Funktion zu definieren, die eine variable Anzahl von Argumenten annehmen kann.

Im Folgenden werden drei verschiedene Formen dieser Art beschrieben.

Python-Standardargumente

Funktionsargumente können in Python Standardwerte haben.

Wir können einem Argument einen Standardwert zuweisen, indem wir den Zuweisungsoperator (=) verwenden. Hier ist ein Beispiel.

def greet(name, msg="Good morning!"):
    """
    This function greets to
    the person with the
    provided message.

    If the message is not provided,
    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 Funktion ist der Parameter name hat keinen Standardwert und ist während eines Anrufs erforderlich (obligatorisch).

Andererseits der Parameter msg hat einen Standardwert von "Good morning!" . Es ist also während eines Anrufs optional. Wenn ein Wert angegeben wird, wird der Standardwert überschrieben.

Eine beliebige Anzahl von Argumenten in einer Funktion kann einen Standardwert haben. Aber sobald wir ein Standardargument haben, müssen alle Argumente rechts daneben auch Standardwerte haben.

Das bedeutet, dass Nicht-Standardargumente nicht auf Standardargumente folgen können. Wenn wir zum Beispiel den Funktionskopf oben wie folgt definiert hätten:

def greet(msg = "Good morning!", name):

Wir würden einen Fehler erhalten als:

SyntaxError: non-default argument follows default argument

Python-Schlüsselwortargumente

Wenn wir eine Funktion mit einigen Werten aufrufen, werden diese Werte entsprechend ihrer Position den Argumenten zugewiesen.

Zum Beispiel in der obigen Funktion greet() , als wir es als greet("Bruce", "How do you do?") bezeichneten , der Wert "Bruce" wird dem Argument name zugewiesen und ähnlich "How do you do?" zu msg .

Python ermöglicht den Aufruf von Funktionen mit Schlüsselwortargumenten. Wenn wir Funktionen auf diese Weise aufrufen, kann die Reihenfolge (Position) der Argumente geändert werden. Die folgenden Aufrufe der obigen Funktion sind alle gültig und erzeugen das gleiche Ergebnis.

# 2 keyword arguments
greet(name = "Bruce",msg = "How do you do?")

# 2 keyword arguments (out of order)
greet(msg = "How do you do?",name = "Bruce") 

1 positional, 1 keyword argument
greet("Bruce", msg = "How do you do?")           

Wie wir sehen können, können wir während eines Funktionsaufrufs Positionsargumente mit Schlüsselwortargumenten mischen. Aber wir müssen bedenken, dass Schlüsselwortargumente Positionsargumenten folgen müssen.

Ein Positionsargument nach Schlüsselwortargumenten führt zu Fehlern. Der Funktionsaufruf lautet beispielsweise wie folgt:

greet(name="Bruce","How do you do?")

Führt zu einem Fehler:

SyntaxError: non-keyword arg after keyword arg

Beliebige Python-Argumente

Manchmal wissen wir nicht im Voraus, wie viele Argumente an eine Funktion übergeben werden. Python ermöglicht es uns, diese Art von Situation durch Funktionsaufrufe mit einer beliebigen Anzahl von Argumenten zu handhaben.

In der Funktionsdefinition verwenden wir ein Sternchen (*) vor dem Parameternamen, um diese Art von Argument zu kennzeichnen. Hier ist ein Beispiel.

def greet(*names):
    """This function greets all
    the person in the names tuple."""

    # names is a tuple with arguments
    for name in names:
        print("Hello", name)


greet("Monica", "Luke", "Steve", "John")

Ausgabe

Hello Monica
Hello Luke
Hello Steve
Hello John

Hier haben wir die Funktion mit mehreren Argumenten aufgerufen. Diese Argumente werden in ein Tupel verpackt, bevor sie an die Funktion übergeben werden. Innerhalb der Funktion verwenden wir einen for Schleife, um alle Argumente zurückzuholen.


Python

  1. Python-Datentypen
  2. Python-Operatoren
  3. Python-pass-Anweisung
  4. Anonyme Python/Lambda-Funktion
  5. Python-Wörterbuch
  6. Python-Generatoren
  7. Python-Schließungen
  8. Python-Dekorateure
  9. Python String strip() Funktion mit BEISPIEL
  10. Python-Lambda-Funktionen mit BEISPIELE