Edit detail for ArgumentyFunkciSHvezdickou revision 3 of 1

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



py30.png

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