Junior — Middle
Duck typing түшүнүгүн түшүндүрүп бериңиз жана анын программалоодогу статикалык типтештирүүдөн айырмасы эмнеде.
sobes.tech AI
AIден жооп
Duck typing — бул программалоодо концепция, анда объекттин тиби анын классы же интерфейси менен эмес, белгилүү ыкмалар жана мүнөздөмөлөрдүн болушу менен аныкталат. Эгер объект "үрөң" катары жүрсө (керектүү ыкмалары бар болсо), ал ылайыктуу деп саналат.
Статикалык типтөө менен айырмасы:
- Статикалык типтөөдө, типтер компиляция учурунда текшерилет жана объекттер ачык түрдө белгиленген типтерге туура келиши керек.
- Duck typingте, текшерүү ишке ашырылуу учурунда болот жана интерфейстин шайкештиги (ыкмалар/мүнөздөмөлөр) гана маанилүү, мурас же жарыяланган типтер эмес.
Python мисалы (duck typing):
class Duck:
def quack(self):
print("Кря-кря")
class Person:
def quack(self):
print("Мен де үрөңгө окшош кыркалай алам")
def make_it_quack(thing):
thing.quack()
make_it_quack(Duck()) # Кря-кря
make_it_quack(Person()) # Мен де үрөңгө окшош кыркалай алам
Бул жерде, функция объекттин тиби менен эмес, quack ыкмасының бар-жоосунан кабардар болот.