In [1]:
def my_function(a, b):
"""
This function sum together two variables (if they are summable).
"""
return a + b
Funkce může být opakovaně použita kde sčítání různých argumentů (čísel, textu i listů)
In [2]:
my_function(2, 5)
Out[2]:
In [3]:
my_function("Spam ", "eggs")
Out[3]:
In [4]:
my_function([1, 2, "A"], [5, 5.3])
Out[4]:
Poznámka: Funkce nemusí mít žádné argumenty a nemusí ani mít příkaz return. Funce bez return vrací None.
Následuje příklad, kde jsou užity navíc i klíčové argumenty.
In [5]:
def my_function(arg1, arg2, kwarg1=0, kwarg2=0):
"""
This function accepts two args and two kwargs.
Product is sum of all args and kwargs
"""
return arg1 + arg2 + kwarg1 + kwarg2
In [6]:
my_function(2, 3., kwarg1=1.5, kwarg2=2)
Out[6]:
In [7]:
my_function(2, 3., 1.5, 2.)
Out[7]:
In [8]:
my_function(2, 3.)
Out[8]:
In [9]:
my_function(2, 3., kwarg2=3.)
Out[9]:
Třída je předpis, podle kterého je možné vytvářet instance - objekty. Příklad jednoduché třídy následuje.
In [10]:
class Example():
def __init__(self):
"""
This is constructor. This function runs during creation.
"""
print("Instance created.")
def __del__(self):
"""
This is something like destructor.
This function runs when the last pointer to the instance is lost.
It is the last will of the instance.
"""
print("Instance deleted")
Instance objektu může být vytvořena následovně. Všimněte si, že po přespání refence na instanci, je instance hned zničena.
In [11]:
f = Example()
f = None
Funkce del (destruktor) se většinou nepoužívá. Ale funkce init (konstruktor) je nejčastější způsob jak inicializovat proměnné nebo činnost instance. V následujícím příkladě má konstruktor instance dva argumenty, které se uloží tak, aby byly přístupné i ostatním funkcím v dané instanci.
In [12]:
class Food():
def __init__(self, portion_size, unit_mass):
self.portion_size = portion_size # make it accessible from outside
self.unit_mass = unit_mass
self.UNIT = "g"
def get_portion_mass(self):
"""
This function returns mass of the portion with unit as string.
"""
return str(self.portion_size * self.unit_mass) + " " + self.UNIT
Následuje příklad jak předat argumenty konstruktoru a jak zavolat vytvořenou funkci dané instance.
In [13]:
f = Food(10, 30) # create food with specific parameters
f.get_portion_mass() # get mass of a single portion
Out[13]:
In [14]:
class Fruit(Food):
def __init__(self, portion_size, unit_mass, sweetness=0):
super(self.__class__, self).__init__(portion_size, unit_mass)
self.sweetness = sweetness
class Vegetable(Food):
def __init__(self, portion_size, unit_mass, is_green=False):
super(self.__class__, self).__init__(portion_size, unit_mass)
self.is_green = is_green
Takto zděděné třídy mají všechny proměnné a funkce původní třídy Food.
In [15]:
apple = Fruit(10, 30, 50)
apple.sweetness
Out[15]:
In [16]:
apple.get_portion_mass()
Out[16]: