Fuer den Fall, dass du das so meinst, hier noch eine kurze Erklaerung zu Rayo's Antwort:
Code: Alles auswählen
def test(*args, **kwargs):
for x in args:
print x
for k,v in kwargs.items():
print '%s -> %s' % (k, repr(v))
test(1, 5, 'a', test='neu', abc=5)
In seinem Beispiel verwendet er
*args und
**kwargs. Das sind zwei verschiedene Moeglichkeiten, mit denen man beliebige Argumente an eine Funktion zulaesst.
*args erzeugt eine Liste ("args" ist hier ein freiwaehlbarer Bezeichner) aus Werten, die aber keinerlei Korrelation besitzen. Hast du also zB eine Funktion zu Summenberechnung:
Code: Alles auswählen
def summe(*summanden):
out = 0
for summand in summanden:
out += summand
return out
# ja, bevor man mich steinigt:
sum(summanden) # tuts auch ;)
In diesem Fall ist
*summanden eine Liste.
Brauchst du aber eine Funktion, bei der Namen zu den Parameter brauchst, nutzt du
**kwargs:
Code: Alles auswählen
def widerstand(**kwargs):
""" gibt den temperaturabhaengigen Widerstand (<100°C) zurueck """
r20 = kwargs["r20"] # Widerstand bei 20°C
alpha20 = kwargs["alpha20"] # TemperaturKoeffizient bei 20°C
delta_v = kwargs["delta_v"] # Temperaturveraenderung in Kelvin
return r20*(1+alpha20*delta_v)
...in dem Fall ist
**kwargs also ein Dictionary.
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2