Вопросы с тегом «duck-typing»

44
Прощение Python против Разрешения и Утиной Печати

В Python я часто слышу, что лучше «просить прощения» (перехват исключений), а не «спрашивать разрешение» (проверка типа / условия). Что касается принудительного набора утки в Python, это try: x = foo.bar except AttributeError: pass else: do(x) лучше или хуже чем if hasattr(foo, "bar"): do(foo.bar)...

23
Почему многие языки динамического программирования с утиными типами используют подход на основе классов вместо ООП на основе прототипов?

Поскольку довольно много динамических языков программирования имеют функцию утилитной типизации , и они также могут открывать и изменять методы класса или экземпляра в любое время (например, Ruby и Python ), тогда… Вопрос 1) Зачем нужен класс на динамическом языке? Почему язык спроектирован таким...

17
Утка набирает подмножество полиморфизма

От полиморфизма в Википедии В информатике полиморфизм - это особенность языка программирования, которая позволяет обрабатывать значения различных типов данных с использованием единого интерфейса. От утки печатать на Википедии В компьютерном программировании с объектно-ориентированными языками...

11
Как вы используете утку, набрав в javascript, не всегда проверяя свойства и методы?

Я знаю, что javascript использует типизацию утиной утилитой, и сначала я подумал, что это облегчит полиморфизм по сравнению со строго типизированными языками, такими как C #. Но теперь мои функции, которые принимают аргументы, изобилуют такими вещами, как: if(myObj.hasSomeProperty()) или же...

10
Утиная печать, проверка данных и напористое программирование на Python

О наборе утки : Утиному типированию способствует то, что он обычно не проверяет тип аргументов в теле методов и функций, полагается на документацию, понятный код и тестирование для обеспечения правильного использования. О проверке аргументов (EAFP: проще просить прощения, чем разрешения)....

9
Неявные и явные интерфейсы

Я думаю, что понимаю реальные ограничения полиморфизма во время компиляции и полиморфизма во время выполнения. Но каковы концептуальные различия между явными интерфейсами (полиморфизм во время выполнения. Т.е. виртуальные функции и указатели / ссылки) и неявными интерфейсами (полиморфизм во время...