Skip to content

Commit 9ad2dbb

Browse files
committed
Fixes & rewordings for class & inheritance
1 parent 2b036ed commit 9ad2dbb

2 files changed

Lines changed: 22 additions & 12 deletions

File tree

lessons/beginners/class/index.md

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ Typ objektu umí zjistit funkce `type`:
7979
A co je to třída? Třída je *popis*, jak se všechny objekty
8080
daného typu chovají.
8181

82-
Nepříklad `<class 'int'>` obsahuje všechno, co je společné všem celým číslům:
82+
Například `<class 'int'>` obsahuje všechno, co je společné všem celým číslům:
8383
že (a jak) se dají sčítat, jak takové číslo převést na řetězec, a tak dále.
8484

8585

@@ -138,8 +138,7 @@ class Kotatko:
138138

139139
Tak jako se funkce definují pomocí `def`,
140140
třídy mají klíčové slovo `class`,
141-
za které napíšeš jméno třídy, dvojtečku,
142-
a pak odsazené tělo třídy.
141+
za které napíšeš jméno třídy, dvojtečku a pak odsazené tělo třídy.
143142
Podobně jako `def` dělá funkce, příkaz
144143
`class` udělá novou třídu a přiřadí ji
145144
do proměnné daného jména (tady `Kotatko`).
@@ -171,10 +170,10 @@ se koťátka chovají.
171170
je konkrétní objekt (angl. *instance*) té třídy:
172171
hodnota, která reprezentuje kotě.
173172

174-
Když definuješ třídu (pomocí bloku `class`), neznamená to, že v tvém
173+
Když definuješ třídu (pomocí bloku `class`), neznamená to zatím, že v tvém
175174
programu je nějaké koťátko.
176-
Třída je jako recept nebo manuál: když si koupíš kuchařku, teoreticky víš
177-
jak upéct dort, jak bude takový dort vypadat a že se dá sníst.
175+
Třída je jako recept nebo manuál: když si koupíš kuchařku, budeš teoreticky
176+
vědět jak upéct dort, jak bude takový dort vypadat a že se dá sníst.
178177
Ale neznamená to ještě, že máš samotný dort!
179178

180179
Konkrétní objekt vytvoříš až zavoláním třídy.
@@ -251,7 +250,7 @@ Když ji pak zavoláš (`mourek.zamnoukej()`),
251250
objekt `mourek` se předá funkci `zamnoukej` jako první argument, `self` .
252251

253252
> [note]
254-
> Onen první argument metody můžešw teoreticky pojmenovat i jinak než `self`,
253+
> Onen první argument metody můžeš teoreticky pojmenovat i jinak než `self`,
255254
> ale když to uděláš, ostatní programátoři se na tebe budou koukat hodně divně.
256255
257256

@@ -286,8 +285,9 @@ Traceback (most recent call last):
286285
AttributeError: 'Kotatko' object has no attribute 'jmeno'
287286
```
288287

289-
Bylo by dobré zařídit, aby každé kotě muselo být pojmenované.
290-
Jméno potřebujeme předat už při vytváření kotěte, nějak takhle:
288+
Aby tahle chyba nemohla nastat, zařídíme, aby každé kotě *muselo* být
289+
pojmenované – a to už od okamžiku kdy vznikne.
290+
Jméno budeme zadávat už při vytváření kotěte, nějak takhle:
291291

292292
```python
293293
mourek = Kotatko(jmeno='Mourek')
@@ -321,6 +321,16 @@ mourek.zamnoukej()
321321
A teď už není možnost, jak vytvořit koťátko beze jména.
322322
Metoda `zamnoukej` bude vždycky fungovat.
323323

324+
Jako u jiných funkcí je možné jméno koťátka zadat buď jako pojmenovaný
325+
argument, nebo jako poziční. Obojí funguje stejně:
326+
327+
```
328+
mourek = Kotatko('Mourek') # 'Mourek' je hodnota prvního argument pro __init__ (po self)
329+
micka = Kotatko(jmeno='Micka') # 'Micka' je hodnota argumentu `jmeno`
330+
```
331+
332+
### Metoda `__str__`
333+
324334
Podobných „opodtržítkovaných“ (speciálních) metod je víc.
325335
Třeba `__str__` se volá, když je potřeba
326336
převést objekt na řetězec:

lessons/beginners/inheritance/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class Stenatko:
3131

3232
Většina kódu je stejná!
3333
Kdybys měla napsat i třídu pro kuřátka, kůzlátka,
34-
slůňátka a háďátka, bez Ctrl+C by to bylo docela nudné.
34+
slůňátka a háďátka, bez <kbd>Ctrl</kbd>+<kbd>C</kbd> by to bylo docela nudné.
3535
A protože jsou programátoři líní psát stejný kód
3636
několikrát (a hlavně ho potom udržovat), vymysleli
3737
mechanismus, jak se toho vyvarovat.
@@ -107,7 +107,7 @@ micka = Kotatko('Micka')
107107
micka.snez('granule')
108108
```
109109

110-
> [python]
110+
> [note]
111111
> Je to podobné jako když jsme minule přepisoval{{gnd('i', 'y', both='i')}}
112112
> atribut pomocí `micka.zamnoukej = 12345`.
113113
> Python atributy hledá napřed na samotném objektu,
@@ -260,7 +260,7 @@ for zviratko in zviratka:
260260
zviratko.snez('flákota')
261261
```
262262

263-
Jak tenhle příklad naznačuje, psát nadtřídy, ze kterých se dobře dědí,
263+
Jak tenhle příklad naznačuje, psát nadtřídy ze kterých se dobře dědí
264264
není jednoduché. Zvlášť to platí, kdyby se z nich mělo dědit v jiném
265265
programu, než kde je nadtřída.
266266
I z toho důvodu je dobré dědičnost používat hlavně v rámci svého kódu:

0 commit comments

Comments
 (0)