3 | ||
Editor: pycz
Time: 2011/10/15 12:05:51 GMT+2 |
||
Note: pridavani znacek 2x-3x |
changed: - .. image:: py30.png :align: right 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'}
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"
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)
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
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'}