Positionsargumente vs. Schlüsselwortargumente in Python

Aditya Raj 30 Januar 2023
  1. Was ist ein Argument in Python?
  2. Was ist ein Positionsargument in Python?
  3. Was ist ein Schlüsselwortargument in Python?
  4. Positionsargumente vs. Schlüsselwortargumente: Was sollten Sie verwenden?
  5. Abschluss
Positionsargumente vs. Schlüsselwortargumente in Python

Beim Aufrufen einer Funktion in Python müssen wir ihr oft Eingabewerte übergeben. In diesem Artikel besprechen wir Positionsargumente und Schlüsselwortargumente in Python. Wir werden auch eine Diskussion über Positionsargumente vs. Schlüsselwortargumente führen, in der wir die Vor- und Nachteile dieser beiden Ansätze diskutieren, um Eingaben für Funktionen in Python bereitzustellen.

Was ist ein Argument in Python?

Um ein Argument zu verstehen, deklarieren wir eine Funktion printDetails(), die vier Werte, d.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)

Dabei werden name, identity_number, age und weight Parameter der Funktion printDetails() genannt. Wir können also sagen, dass ein Parameter Teil der Signatur/Deklaration einer Funktion ist.

Angenommen, wir wollen die Funktion printDetails() mit name- Aditya, identity_number- TM2017001, age- 23 und weight- 65 aufrufen Eingang. Wir können es wie folgt machen.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails("Aditya", "TM2017001", 23, 65)

Ausgabe:

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

Dabei sind Aditya, TM2017001, 23 und 65 Argumente der Funktion printDetails(). Bei der Ausführung der Funktion wird der Wert Aditya dem Parameter name, TM2017001 dem Parameter identity_number, 23 dem Parameter age und 65 zugewiesen dem Parameter weight zugeordnet. Daher können wir sagen, dass ein Argument ein Wert ist, der an eine Funktion übergeben wird, und ein Parameter die in der Funktion deklarierte Variable, der das Argument zugewiesen ist.

Um einem Parameter ein Argument zuzuweisen, können wir die Werte entweder in der Reihenfolge übergeben, in der die Parameter in der Funktion deklariert wurden. Alternativ können wir den Parametern die Argumente auch direkt zuweisen. Auf dieser Grundlage werden Argumente in Python als Positionsargumente und Schlüsselwortargumente klassifiziert. Lassen Sie uns sie einzeln besprechen.

Was ist ein Positionsargument in Python?

Wenn wir ein Argument direkt an eine Funktion übergeben und es einem Parameter basierend auf seiner Position zugewiesen wird, wird es als Positionsargument bezeichnet. Wenn wir beispielsweise die Funktion printDetails() mit den Werten Aditya, TM2017001, 23 und 65 wie folgt aufrufen,

printDetails("Aditya", "TM2017001", 23, 65)

Alle Eingabeargumente werden den Parametern basierend auf ihrer Position im Funktionsaufruf und der Position der Parameter in der Funktionsdeklaration zugewiesen. Lassen Sie uns den Funktionsaufruf und die Funktionsdeklaration zusammen schreiben, um dies besser zu verstehen.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails("Aditya", "TM2017001", 23, 65)

Ausgabe:

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

Hier können Sie beobachten, dass die Funktion printDetails() Parameter in der Reihenfolge name, identity_number, age und weight hat. Demnach wird Aditya dem name, TM2017001 dem identity_number, 23 dem age und 65 dem weight zugeordnet.

Was ist ein Schlüsselwortargument in Python?

Anstatt nur Werte in der Funktion zu übergeben, können wir diese wie folgt direkt den Parametern zuweisen.

printDetails(name="Aditya", identity_number="TM2017001", age=23, weight=65)

Hier funktioniert jeder Parameter wie ein Schlüssel und jedes Argument als Wert. Daher werden die Argumente als Schlüsselwortargumente bezeichnet. Bei der Ausführung funktioniert die Funktion genauso wie bei Positionsargumenten. Dies können Sie im folgenden Beispiel beobachten.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails(name="Aditya", identity_number="TM2017001", age=23, weight=65)

Ausgabe:

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

Positionsargumente vs. Schlüsselwortargumente: Was sollten Sie verwenden?

Wenn wir über die Ausführung sprechen, haben sowohl die Positionsargumente als auch die Schlüsselwortargumente dieselbe Effizienz. Die Wahl, einen dieser Ansätze zu verwenden, hängt von Ihrer Bequemlichkeit ab.

Bei der Verwendung von Positionsargumenten kann das Ändern der Position von Eingabeargumenten zu unerwünschten Ergebnissen führen. Schauen Sie sich zum Beispiel das folgende Beispiel an.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails(65, "TM2017001", 23, "Aditya")

Ausgabe:

Name is: 65
Identity Number is: TM2017001
Age is: 23
Weight is: Aditya

Hier wurde dem Parameter name die 65 und dem Parameter weight Aditya zugeordnet. Daher ist es wichtig, die Positionsargumente in derselben Reihenfolge zu übergeben, in der die entsprechenden Parameter in der Funktionsdeklaration definiert wurden.

Andererseits können wir die Argumente in beliebiger Reihenfolge übergeben, während wir Schlüsselwortargumente verwenden. Es hat keinen Einfluss auf die Ausgabe der Funktion. Dies können Sie im folgenden Beispiel beobachten.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails(weight=65, identity_number="TM2017001", age=23, name="Aditya")

Ausgabe:

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

Wenn Sie also mögliche Fehler aufgrund einer Positionsänderung der Argumente vermeiden möchten, ist die Verwendung des Schlüsselworts arguments für Sie besser.

Wir können auch Positions- und Schlüsselwortargumente in einem einzigen Funktionsaufruf verwenden, wie im folgenden Programm gezeigt.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails("Aditya", "TM2017001", age=23, weight=65)

Ausgabe:

Name is: Aditya
Identity Number is: TM2017001
Age is: 23
Weight is: 65

Hier können Sie beobachten, dass Positionsargumente an der gleichen Stelle an die Funktion übergeben werden, an der der entsprechende Parameter definiert wurde. Im Vergleich dazu können Schlüsselwortargumente in beliebiger Reihenfolge übergeben werden. Außerdem können wir keine Positionsargumente übergeben, nachdem ein Schlüsselwortargument übergeben wurde.

Sobald wir ein Schlüsselwortargument übergeben haben, müssen alle verbleibenden Argumente als Schlüsselwortargumente übergeben werden. Andernfalls führt das Programm zu einem Fehler, wie Sie im folgenden Beispiel beobachten können.

def printDetails(name, identity_number, age, weight):
    print("Name is:", name)
    print("Identity Number is:", identity_number)
    print("Age is:", age)
    print("Weight is:", weight)


printDetails("Aditya", identity_number="TM2017001", 23, weight=65)

Ausgabe:

  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 8
    printDetails("Aditya", identity_number="TM2017001", 23, weight=65)
                                                        ^
SyntaxError: positional argument follows keyword argument

Sie können also nach Belieben Positionsargumente oder Schlüsselwortargumente oder beide im selben Funktionsaufruf auswählen.

Abschluss

In diesem Artikel haben wir Positionsargumente und Schlüsselwortargumente in Python untersucht. Wir diskutierten auch Positionsargumente vs. Schlüsselwortargumente und kamen zu dem Schluss, dass beide Ansätze in Bezug auf die Ausführungseffizienz gleich sind. Wir können sie sogar zusammen in einem einzigen Funktionsaufruf verwenden. Denken Sie nur daran, dass wir nach einem Schlüsselwortargument kein Positionsargument verwenden können.

Autor: Aditya Raj
Aditya Raj avatar Aditya Raj avatar

Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.

GitHub

Verwandter Artikel - Python Function

Verwandter Artikel - Python Argument