Junior — Middle
Izskaidrojiet duck typing koncepciju un kā tā atšķiras no statiskās tipizācijas programmēšanā.
sobes.tech AI
Atbilde no AI
Duck typing ir koncepcija programmēšanā, kurā objekta tips netiek noteikts pēc tā klases vai saskarnes, bet pēc noteiktu metožu un īpašību klātbūtnes. Ja objekts uzvedas kā "pīle" (ir nepieciešamās metodes), tas tiek uzskatīts par piemērotu.
Atšķirība no statiskās tipizācijas:
- Statiskajā tipizācijā tipi tiek pārbaudīti kompilācijas laikā, un objektiem jāatbilst noteiktiem tipiem.
- Duck typing gadījumā pārbaude notiek izpildes laikā, un svarīga ir tikai saskarnes saderība (metodes/īpašības), nevis mantošana vai deklarētie tipi.
Python piemērs (duck typing):
class Duck:
def quack(self):
print("Kvak kvak")
class Person:
def quack(self):
print("Es varu kvakēt kā pīle")
def make_it_quack(thing):
thing.quack()
make_it_quack(Duck()) # Kvak kvak
make_it_quack(Person()) # Es varu kvakēt kā pīle
Šeit funkcija nesatraucas par objekta tipu, tikai par quack metodes klātbūtni.