Python Tutorial
- jetzt Python programmieren lernen

Funktionen mit variabler Parameteranzahl

Bisher sind wir bei der Übergabe der Parameter immer davon ausgegangen, dass wir die Anzahl der Parameter kennen.

def ausgabe(wert1, wert2):
	print("Ausgabe von Text aus einer Funktion")
	print(wert1)
	print(wert2)
ausgabe(5,3)

Was passiert aber, wenn wir die Anzahl der Parameter nicht kennen? Wenn also eine variable Parameteranzahl vorliegt? Auch für diesen Fall hat und Python eine Lösung. Wir kennzeichnen unseren Parametername mit einem Stern am Anfang.

def ausgabe( *mehrereParameter ):
    for einzelwert in mehrereParameter:
        print(einzelwert)
ausgabe("Hallo", "Welt", "guten", "Morgen")

Jetzt können wir beliebig viele Parameter übergeben. Die Ausgabe des Beispielcodes ergibt:

Hallo
Welt
guten
Morgen

Jeder einzelne Parameter wird über die print-Ausgabe in einer eigenen Zeile ausgegeben.

Allerdings funktioniert eine Vorbelegung eines einzelnen Parameters nicht mehr, wie wir es bereits kennen gelernt haben:

def ausgabe(wert1="Hallo", wert2="Welt"):
	print("Ausgabe von Text aus einer Funktion")
	print(wert1)
	print(wert2)
ausgabe(5,3)

Wir haben bei Funktionen mit variabler Parameteranzahl auch keinen einzelnen Parameter – die folgende Konstruktion führt zu der Fehlermeldung "SyntaxError: invalid syntax".

def ausgabe( *mehrereParameter="falsch!" ):

Und das gute ist – wir benötigen es in diesem Fall auch nicht wirklich. Wir können beliebig viele Parameter übergeben. Und dabei meint mit "beliebig viele" auch keinen Inhalt. Folgender Code wird ohne Fehlermeldung korrekt abgearbeitet – es erfolgt auch keine Ausgabe, denn wir haben auch keinen Inhalt unserem Parameter "*mehrereParameter" übergeben:

def ausgabe( *mehrereParameter ):
    for einzelwert in mehrereParameter:
        print(einzelwert)
ausgabe()

Vorsicht bei der Verwendung! Hier wird eine spätere Fehlersuche aufwändiger – besonders bei Logikfehlern.