Junior — Middle
Vysvetlite koncept duck typing a v čom sa líši od statickej typizácie v programovaní.
sobes.tech AI
Odpoveď od AI
Duck typing je koncept v programovaní, pri ktorom sa typ objektu neurčuje podľa jeho triedy alebo rozhrania, ale podľa prítomnosti určitých metód a vlastností. Ak sa objekt správa ako "kačica" (má potrebné metódy), považuje sa za vhodný.
Rozdiel od statického typovania:
- Pri statickom typovaní sa typy kontrolujú počas kompilácie a objekty musia explicitne zodpovedať definovaným typom.
- Pri duck typing sa kontrola vykonáva počas behu a dôležitá je len kompatibilita rozhrania (metódy/vlastnosti), nie dedičstvo alebo deklarované typy.
Príklad v Pythone (duck typing):
class Duck:
def quack(self):
print("Kvak kvak")
class Person:
def quack(self):
print("Môžem kvákať ako kačica")
def make_it_quack(thing):
thing.quack()
make_it_quack(Duck()) # Kvak kvak
make_it_quack(Person()) # Môžem kvákať ako kačica
Tu funkcia sa nezaujíma o typ objektu, iba o prítomnosť metódy quack.