Metaprogramovanie - koronaprednáška 4
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Prednáška sa venuje dynamickým zmenám rozhrania objektov v Pythone. Po stručnej rekapitulácii reflexie vysvetľuje, že rozhranie v Pythone zahŕňa nielen metódy, ale aj operátory (napr. plus, volanie triedy, hranaté zátvorky, len), ktoré sa prekladajú na posielanie správ a dajú sa prekryť. Na príkladoch z reálneho sveta, napríklad práčky s testovacím režimom, ukazuje, že rozhranie sa môže meniť podľa stavu objektu alebo používateľa, pričom štandardným riešením v statických jazykoch sú výnimky a interfejsy. V Pythone je príkaz class bežným príkazom, takže telo triedy môže obsahovať podmienky či cykly, a funkcia locals() umožňuje dynamicky pridávať metódy. Záverečný príklad upozorňuje na úskalie, keď lambda v cykle používa globálnu premennú i namiesto jej hodnoty.
- - Rozhranie objektu v Pythone zahŕňa aj operátory a špeciálne metódy, ktoré sa prekladajú na posielanie správ.
- - V reálnom svete sa rozhranie mení podľa stavu objektu alebo typu používateľa, v programoch býva zvyčajne pevné.
- - V statických jazykoch sa zmena rozhrania rieši výnimkami alebo viacerými interfejsmi.
- - Príkaz class v Pythone je bežný príkaz, takže v tele triedy možno použiť podmienky a cykly na podmienenú definíciu metód.
- - Funkcia locals() vracia slovník lokálnych premenných, cez ktorý možno v tele triedy dynamicky vytvárať metódy.
- - Lambda funkcie vytvorené v cykle používajú hodnotu globálnej premennej i, nie hodnotu z času vytvorenia, čo vedie k neočakávanému výsledku.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky