A Byte of Python

Übergabe von Tupeln und Dictionaries in Funktionen

Es gibt eine besondere Methode, um einer Funktion Parameter als Tupel oder Dictionary zu übergeben, nämlich indem man den Parametern * bzw. ** voranstellt. Dies ist nützlich, wenn eine Funktion eine beliebige Zahl von Parametern entgegennehmen soll.

Beispiel: potenzsumme.py

		
>>> def potenzsumme(potenz, *parameter):
...     '''Gibt die Summe der angegebenen Potenz aller Parameter zurueck.'''
...     summe = 0
...     for i in parameter:
...             summe += pow(i, potenz)
...     return summe
...
>>> potenzsumme(2, 3, 4) # 3^2 + 4^2
25

>>> potenzsumme(2, 10) # 10^2
100
		
		

Aufgrund des vorangestellten * bei der Variable parameter, werden alle zusätzlichen Parameter, die der Funktion übergeben werden, als ein Tupel in parameter gespeichert. Wenn stattdessen ein ** vorangestellt worden wäre, dann wären die zusätzlichen Parameter als Schlüssel/Wert-Paare eines Dictionaries betrachtet worden.