Python Anfänger was heißt Args und Kwargs?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet
(...) was kann ich in dieser Klammer einsetzen (...)

Eine Basisklasse, von der die Klasse erben soll.

Die richtige Schreibweise sieht doch wie folgt aus oder?

Du kannst Parametern auch Standardwerte geben. Dann brauchst du ihnen bei Aufruf auch kein explizites Argument zuordnen. Voraussetzung ist allerdings, dass ein Parameter mit Standardwert in der Parameterliste erst nach den Parametern ohne Wert kommt.

Beispiel mit einer einfachen Funktion:

def multiply(first_number, second_number=2):
  result = first_number * second_number
  print(result)

multiply(3) # 6
multiply(6, 7) # 42

wofür steht das args und kwargs?

Das Sternchen vor dem Parameternamen gibt an, dass für diesen Parameter eine variable Menge an Argumenten angegeben werden kann. Der Parameter selbst stellt darauffolgend eine Liste dar, die all die übergebenen Werte beinhaltet.

Beispiel:

def get_sum(*values):
  result = 0

  for value in values:
    result += value

  return result

sum_1 = get_sum(1, 2, 3)
print(sum_1) # 6

sum_2 = get_sum(4, 5)
print(sum_2) # 9

Bei einem Parameter mit doppelten Sternchen hingegen werden Schlüsselwertpaare als Argumente erwartet. Der Parameter stellt ein Dictionary dar, welches alle Paare speichert.

Beispiel:

def print_age(**data):
  for key in data:
    print(key, "is", data[key], "years old.")

print_age(Max=43, Josefine=39, Katharina=22)