NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 22 - Magické metody v Pythonu podruhé

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Jan Koubek :27.12.2024 11:39

Od kapitoly Dekorátory se už absolutně nechytám. Kdyby byly lekce napsané maďarsky, tak je to pro mne zhruba nastejno.
Mám dojem, že jsem si zvolil rekvalifikaci, na kterou intelektuálně nemám. Do každé nové lekce se musím doslova nutit a výsledkem je pouze rostoucí averze k programování.

 
Odpovědět
27.12.2024 11:39
Avatar
Jan Vaněk
Člen
Avatar
Jan Vaněk:20. ledna 17:52

"Python nám umožňuje vytvářet vlastní kontejnerové třídy, které se
chovají podobně jako standardní datové struktury. Tedy jako seznamy nebo
nám ještě neznámé slovníky a množiny. Používají se k tomu právě
dunder metody. A kdo by nesouhlasil s tím, že vytvořit si vlastní seznam je
fakt chladné"

Zdroj: https://www.itnetwork.cz/…-matematicke

Hele zdá se mi to, nebo čtu nějakej strojovej překlad? To jako fakt?

 
Odpovědět
20. ledna 17:52
Avatar
Jan Valenta
Člen
Avatar
Jan Valenta:8. dubna 19:17

takhle rozepsáno v kódu s komentáři je to mnohem srozumitelnější než-li prostý text... print(len(muj_sez­nam)) # Vypíše 3 (délku seznamu)
print(muj_sez­nam[1]) # Vypíše 2 (prvek na indexu 1)
muj_seznam[1] = 20 # Nastaví prvek na indexu 1 na 20
del muj_seznam[0] # Odstraní prvek na indexu 0

 
Odpovědět
8. dubna 19:17
Avatar
Veronika Viková:22. dubna 19:19

Posledních 6 lekcí vůbec nevím o čem je řeč. Text není psán pro začátečníky, ale pro někoho, kdo nějaké zkušenosti má a učí se jen nový programovací jazyk. Není to pro mě vůbec srozumitelné, nerozumím ani větě, jako by to bylo psáno cizím jazykem. Úplně se děsím následujících příkladů. Musím se přesvědčovat pokračovat a jelikož to mám přes Úřad práce, tak nemohu jen tak říct - Konec :-(. Jdu to někde dohledat, kde mi to někdo vysvětlí česky a lidsky.

 
Odpovědět
22. dubna 19:19
Avatar
Petr Krátký:28. dubna 1:11

Program s __getattr__ jsem si nechal vysvětlit přes ChatGPT, protože ten podivný jazyk připomínající češtinu moc nepobírám. A koukám, že zdaleka nejsem sám. "Kdo by nesouhlasil s tím, že vytvořit si vlastní seznam je fakt chladné..."

 
Odpovědět
28. dubna 1:11
Avatar
Jakub Janáček:8. května 19:13

.

 
Odpovědět
8. května 19:13
Avatar
Lucie Prousková:3. června 20:41

Vysvětlení metody __getattr__() je i poté, co jsem ji několikrát pročetla a přepsala do vlastního EDI, naprosto nepochopitelná.
V pozdější lekci o Uživatelsky definovaných kontejnerech jsem pak našla chybu v textu, která mi připadá, že byla způsobena špatným překladem z angličtiny. Což mě hodně zaráží, jelikož jsem měla za to, že všechny texty jsou autorské a originální.
Nicméně to aspoň vysvětluje, proč je mnoho z lekcí napsáno tak těžkopádným a obtížně chápatelným způsobem.

 
Odpovědět
3. června 20:41
Avatar
DarkCoder
Člen
Avatar
DarkCoder:4. června 8:46

Když tento atribut později změníme, metoda __getattr__() vrátí jeho aktualizovanou hodnotu.

Toto je chybně! A celkově vysvětlování metody __getattr__() neúplné. Takové zjednodušení nebo opomenutí tak akorát vede k nedorozumění a mylnému očekávání, jak __getattr__ skutečně funguje.

Třída FlexibilniObjekt používá metodu __getattr__, aby dynamicky vytvářela a ukládala atributy do seznamu _atributy. Problém je ale v tom, že třída neobsahuje metodu __setattr__, takže když uživatel přiřadí hodnotu nějakému atributu (např. objekt.foo = "něco"), Python uloží tento atribut do běžného slovníku atributů objektu (__dict__), nikoli do _atributy.

Po prvním přístupu k neexistujícímu atributu (např. objekt.foo) se spustí __getattr__, atribut se dynamicky vytvoří a uloží do _atributy. Ale jakmile se později pokusíme nastavít objekt.foo = "něco jiného", hodnota už není změněna v _atributy, ale vytvoří se nový atribut přímo v objektu (__dict__).

Při dalším čtení atributu (objekt.foo) Python už nenajde atribut jako "neexistující" (je totiž v __dict__), takže už __getattr__ nespustí – čímž se úplně obejde logika práce s _atributy.

Odpovědět
4. června 8:46
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Štěpán Bodnár:9. června 16:43

Tak přemýšlím, zda je pasáž „...vytvořit si vlastní seznam je fakt chladné“ pokusem o autistický vtip, nebo prostě jen nezdařilý strojový překlad. Upřímně doufám, že to první, protože pro kurzy v této cenové relaci by to druhé nebyla zrovna dobrá vizitka.

 
Odpovědět
9. června 16:43
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 39.