Junior — Middle
Magyarázza el a duck typing fogalmát és hogy különbözik a statikus típusosságtól a programozásban.
sobes.tech MI
Válasz az MI-től
A duck typing egy programozási koncepció, amelyben egy objektum típusát nem a osztálya vagy interfésze határozza meg, hanem bizonyos metódusok és tulajdonságok megléte. Ha egy objektum úgy viselkedik, mint egy "kacsa" (megfelelő metódusokkal rendelkezik), akkor megfelelőnek tekintik.
A statikus típusosságtól való különbség:
- Statikus típusosságnál a típusokat fordítási időben ellenőrzik, és az objektumoknak egyértelműen meg kell felelniük a meghatározott típusoknak.
- Duck typing esetén az ellenőrzés futás közben történik, és csak az interfész kompatibilitása (metódusok/ tulajdonságok) számít, nem az öröklődés vagy a deklarált típusok.
Python példában (duck typing):
class Duck:
def quack(self):
print("Krick-krack")
class Person:
def quack(self):
print("Még kacsa módjára krick-krack")
def make_it_quack(thing):
thing.quack()
make_it_quack(Duck()) # Krick-krack
make_it_quack(Person()) # Még kacsa módjára krick-krack
Itt a függvény nem törődik az objektum típusával, csak a quack metódus meglétével.