Algi.cz

  • Zvětšit velikost písma
  • Výchozí velikost písma
  • Zmenšit velikost písma

Python def

Email Tisk PDF

Pomocí def (z angličtiny define) definujeme funkce a metody.

Definování funkcí v Pythonu

>>> def vypis_ahoj():
>>>   print("Ahoj!")
>>>   return
>>> 
>>> vypis_ahoj()
Ahoj!
>>> 
>>> def porovnej(a,b):
>>>   if a > b:
>>>     return 1
>>>   elif a == b:
>>>     return 0
>>>   elif a < b:
>>>     return -1
>>>

První funkce vypíše text "Ahoj!", není na tom nic složitého.

Druhá funkce má 2 vstupní parametry. Porovná je a pomocí return vrátí výslednou hodnotu. Jelikož je kontrola typů v Pythonu dynamická - probíhá za běhu, není nutné u parametrů udávat jejich typ, jako je tomu například v jazyku C. Musíme si ovšem dát pozor, s jakými proměnnými voláme funkci a jaké operace s nimi provádíme.

Definování metod tříd

def neslouží jen k definování globálních funkcí, ale také k definování metod tříd. Mějme třídu osoba:

Definování tříd a metod v Pythonu

>>> class osoba:
...   """Jednoducha ukazkova trida"""
...   vyska = 5
...   def vypis_vysku(self):
...     print(self.vyska)
...     return
...
>>>

 

 

 

 

Tímto způsobem jsme nadefinovali třídu osoba, její globální vlastnost vyska je implicitně 5 a její jediná metoda vypis_vysku, kupodivu vypíše výšku. Zajímavé na tomto příkladu je přístup ke globálním proměnným třídy před self, který obsahuje ukazatel na danou instanci třídy. Objekt této třídy vytvoříme následovně:

Objekty v pythonu a výpis __doc__ - dokumentační proměnné

>>> jan = osoba()
>>> jan.vypis_vysku()
5
>>> jan.___doc___
'Jednoducha ukazkova trida'

 

 

 

Vytvořili jsme si instanci jan třídy osoba. Zavolali jsme metodu vypis_vysku.

Pomocí jan.__doc__ si můžeme nechat vypsat obsah dokumentační proměnné, jejíž obsah se nachází v definici třídy ohraničen zleva i zprava trojicí uvozovek """.

 


 

 

 

 

Aktualizováno Neděle, 21 Únor 2010 13:20  

Přidat komentář


Bezpečnostní kód
Obnovit

Banner