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

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


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

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

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

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

1
Неявные и явные интерфейсы
Я думаю, что понимаю реальные ограничения полиморфизма во время компиляции и полиморфизма во время выполнения. Но каковы концептуальные различия между явными интерфейсами (полиморфизм во время выполнения. Т.е. виртуальные функции и указатели / ссылки) и неявными интерфейсами (полиморфизм во время компиляции. Т.е. шаблоны) . Я думаю, что два объекта, которые предлагают …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.