Argumenty funkcí s hvězdičkou
Bez hvězdiček
Obyčejné předávání argumentů je jasné: "n" je argument (vnitřní proměnná) funkce f. Nabývá hodnot, které mu předávme při volání. Proměnná n při opuštění funkce zaniká:
# definice funkce s argumentem n def f(n): print (n) f(5) # vytiskne "5" f("ahoj") # vytiskne ahoj f() # způsobí chybu - zapomněli jsme předat argument print (n) # způsobí chybu - n existuje jen v rámci funkce
Argumentů může být více:
def f(m,n): print (m,n) f(1,2) # vytiskne "1 2"
Funkce může (a je to obvyklejší případ), nějakou hodnotu vracet:
def dvakrat(n): x=2*n return x dvakrat(5) # nevytiskne nic, protože nikde není print print (dvakrat(5)) # tiskne vrácenou hodnotu, tedy "10"
Jedna hvězdička
Za hvězdičkou se očekává sekvence. Dosadí se z ní poziční argumenty funkce:
def f(*n): for i in n: print (i) f(1,2,3,4) seznam=[7,8,9,10] f(*seznam)
Dvě hvězdičky
Za dvěma hvězdičkami se očekává slovník. Dosadí se z něj zbývající klíčové parametry funkce:
def f(**kwd): print (kwd) f(a=1,b=2,c=3.4,ahoj="hello world")
Více na http://docs.python.org/tutorial/controlflow.html#more-on-defining-functions
Další ukázka
Pro vypsání předem nedefinovaných pozičních argumentu použijeme *promenna, pro vypsání nedefinovaných keyword argumentů použijeme **promenna2.
def funkce(*args,**kwargs): print "pozicni argumenty:", args print "Keyword argumenty:", kwargs funkce(1, 2, 'hello', neco="nic")
Vypíše:
>>pozicni argumenty: (1, 2, 'hello') >>Keyword argumenty: {'neco': 'nic'}