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'}