Junior — Middle
Vysvětlete koncept duck typing a v čem se liší od statické typizace v programování.
sobes.tech AI
Odpověď od AI
Duck typing je koncept v programování, při kterém se typ objektu neurčuje podle jeho třídy nebo rozhraní, ale podle přítomnosti určitých metod a vlastností. Pokud se objekt chová jako "kachna" (má potřebné metody), je považován za vhodný.
Rozdíl od statického typování:
- U statického typování jsou typy kontrolovány při kompilaci a objekty musí explicitně odpovídat definovaným typům.
- U duck typing probíhá kontrola za běhu a důležitá je pouze kompatibilita rozhraní (metody/vlastnosti), nikoliv dědičnost nebo deklarované typy.
Příklad v Pythonu (duck typing):
class Duck:
def quack(self):
print("Kach-kach")
class Person:
def quack(self):
print("Mohu kvákat jako kachna")
def make_it_quack(thing):
thing.quack()
make_it_quack(Duck()) # Kach-kach
make_it_quack(Person()) # Mohu kvákat jako kachna
Funkce se zde nezajímá o typ objektu, pouze o přítomnost metody quack.