Junior — Middle
Selgitage duck typing kontseptsiooni ja kuidas see erineb staatilisest tüübi määramisest programmeerimises.
sobes.tech AI
Vastus AI-lt
Duck typing on kontseptsioon programmeerimises, kus objekti tüüp määratakse mitte nende klassi või liidese järgi, vaid teatud meetodite ja omaduste olemasolu järgi. Kui objekt käitub nagu "Part" (omab vajalikke meetodeid), siis seda peetakse sobivaks.
Erinevus statilisest tüübist:
- Statilises tüübist kontrollitakse tüüpe kompileerimise ajal ning objektid peavad selgelt vastama määratletud tüüpidele.
- Duck typingus toimub kontroll jooksvalt ning oluline on ainult liidese (meetodite/omaduste) sobivus, mitte pärimine või deklareeritud tüübid.
Python näide (duck typing):
class Duck:
def quack(self):
print("Kvak kvak")
class Person:
def quack(self):
print("Ma võin kvakida nagu part")
def make_it_quack(thing):
thing.quack()
make_it_quack(Duck()) # Kvak kvak
make_it_quack(Person()) # Ma võin kvakida nagu part
Siin ei hooli funktsioon objekti tüübist, vaid ainult quack meetodi olemasolust.