Python Tutorial - Funktionsargumente

Jinku Hu 5 November 2020
  1. Python Funktions-Argumente
  2. Python Funktion Argumente Typen
Python Tutorial - Funktionsargumente

In diesem Abschnitt lernen Sie die Argumente von Python-Funktionen und ihre verschiedenen Typen wie Standard-Argumente, Schlüsselwort-Argumente und willkürliche Argumente kennen.

Python Funktions-Argumente

Argumente der Funktion sind die Werte, auf denen die Operationen innerhalb der Funktion ausgeführt werden.

Wenn Sie eine Funktion mit einer bestimmten Anzahl von Argumenten definieren, müssen Sie diese spezielle Funktion durch die Übergabe der angegebenen Anzahl von Argumenten aufrufen.

Wenn Sie mehr oder weniger Argumente übergeben als in der Funktionsdefinition angegeben, erhalten Sie einen TypeError.

Betrachten Sie den folgenden Code:

def language(p, n):
    """Function to print a message"""
    print("Programming language", n, "is:", p)


language("Python", 1)
language("Java", 2)
Programming language 1 is: Python
Programming language 2 is: Java

Die Funktion language hat zwei Argumente. Und wenn Sie die Funktion mit einer anderen Anzahl von Argumenten aufrufen, erhalten Sie einen Fehler wie unten beschrieben:

>>> language('Python')

Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    language('Python')
TypeError: language() takes exactly 2 arguments (1 given)

>>> language(2, 'Python', 'Java')

Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    language(2, 'Python', 'Java')
TypeError: language() takes exactly 2 arguments (3 given)

Python Funktion Argumente Typen

Die vorherige Funktion hat eine feste Anzahl von Argumenten. Und die Funktion kann auch variable Argumente haben.

Es gibt drei verschiedene Wege, variable Argumente an eine Funktion zu übergeben. Gehen wir sie alle durch.

Python Funktion Standard-Argumente

In einer Funktion können Argumente Standardwerte haben, die in der Funktionsdefinition zugewiesen werden. Wenn die Argumente Vorgabewerte haben, dann ist es optional, Werte für diese Argumente zu übergeben:

Dies wird im folgenden Beispiel gezeigt:

def language(p="C++", n=3):
    """Function to print a message"""
    print("Programming language", n, "is:", p)


language()
Programming language 3 is: C++

Sie könnten hier sehen, dass kein Argument übergeben wird, aber das Programm trotzdem gut funktioniert; denn es werden Standardwerte für die Argumente bereitgestellt. Wenn Sie Werte für eines der Argumente übergeben, wird der Standardwert überschrieben.

Python Funktion Schlüsselwort Argumente

Normalerweise übergeben Sie mehrere Argumente in der gleichen Reihenfolge, wie sie in der Funktionsdefinition definiert ist. Aber wenn Sie Schlüsselwort-Argumente verwenden, können Sie die Position der Argumente ändern.

def language(p, n):
    """Function to print a message"""
    print("Programming language", n, "is:", p)


language(p="C++", n=3)
Programming language 3 is: C++

Sie können die Position der Argumente auch ändern, wenn Sie Schlüsselwortargumente verwenden, um den spezifischen Argumenten explizit Werte zuzuweisen.

def language(p, n):
    """Function to print a message"""
    print("Programming language", n, "is:", p)


language(n=3, p="C++")
Programming language 3 is: C++

Python-Funktion Beliebige Argumente

Willkürliche Argumente werden verwendet, wenn im Voraus nicht bekannt ist, wie viele Argumente übergeben werden sollen.

Eine Arbitrary-Funktion wird mit einem Sternchen * vor dem Namen des Arguments gekennzeichnet. Sie übergibt nicht schlüsselwortige Argumente als Tupel an die Funktion.

def language(*args):
    """Demo function of arbitray arguments"""
    for i in args:
        print("Programming language:", i)


language("Java", "C++", "R", "Kotlin")
Programming language: Java
Programming language: C++
Programming language: R
Programming language: Kotlin

Die Funktion wird durch die Übergabe mehrerer Argumente aufgerufen. Diese Argumente werden in ein Tupel umgewandelt, bevor die Funktion tatsächlich aufgerufen wird.

Der doppelte Stern **kwargs ist die Redewendung, um die beliebigen Schlüsselwort-Argumente an die Funktion zu übergeben. Zum Beispiel,

def language(**kwargs):
    """Demo funciton of arbitrary keyword arguments"""
    for a in kwargs:
        print(a, kwargs[a])


language(country="NL", code="+31")
country NL
code +31

Argumente in diesem Schlüsselwort beliebige Argumente werden als ein Dictionary übergeben, dessen keys Schlüsselwörter und values entsprechende Werte sind. Wie im obigen Beispiel werden die übergebenen Argumente in ein Dictionary {'Land': "NL", 'Code': "+31"} konvertiert.

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook