You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
python-gjk/12/tridy_a_objekty.md

36 lines
1.4 KiB
Markdown

# Třídy a Objekty
Třídy v programování popisují nějaký "typ" určité hodnoty.
Například hodnota `1` je typu `int`, hodnota `'ahoj'` je typu `str` - typy jsou třídy a hodnoty objekty.
Třídy popisují jen obecné vlastnosti a činnosti (funkce, u tříd se jim říká metody).
Objekty jsou instance třídy, které mají nějaké konktrétní hodnoty.
Takhle vypadá definice třídy v pythonu:
```python
class Clovek: # tridy se nazyvaji s velkym pocatecnim pismenem
def __init__(self, age, height):
self.age = age # self.age patri objektu, age je argument metody
self.height = height
```
Metoda `__init__` je tzv. konstruktor, čili je volána vždy když tvoříme objekt.
`self` je proměnná do které se automaticky přiřadí objekt.
Takle vypadá konstrukce objektu třídy člověk:
```python
x = Clovek(18, 180)
```
Je dobré si všimnout, že při konstrukci jsme dali metodě `__init__` jen dva argumenty, i když v definici bere tři.
To je proto, že objekt se automaticky přiřadí k proměnné `self` (nebo jakékoli proměnné která bude na začátku).
Protože `__init__` je konstruktor, tak k self se přiřadí prázdný objekt, kterému potom dáváme nějaké vlastnosti.
Je to lechce podobný proces jako při práci se slovníky:
```python
def init(age, height)
x = dict()
x["age"] = age
x["height"] = height
return x
```
Až na to, že k datům objektu přistupujeme pomocí tečky (`x.age` místo `x["age"]`).