Запитання з тегом «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 з точки зору …

11
Чому PHP має інтерфейси?
Я помітив, що станом на PHP5 до мови додано інтерфейси. Однак, оскільки PHP настільки слабко набраний, здається, що більшість переваг використання інтерфейсів втрачається. Чому це включено в мову?

4
Чому б багато динамічних мов програмування типу качок використовували підхід на основі класу замість протоколу OOP на основі прототипу?
Оскільки досить багато динамічних мов програмування мають особливості введення качок , і вони також можуть відкривати та змінювати методи класу чи екземпляра в будь-який час (наприклад, Ruby та Python ), то… Запитання 1) Яка потреба в класі динамічної мови? Чому мова створена таким чином, щоб використовувати клас як якийсь "шаблон", …

6
Качка набирає підмножину поліморфізму
З поліморфізму на Вікіпедії В інформатиці поліморфізм - це мова мови програмування, яка дозволяє обробляти значення різних типів даних за допомогою єдиного інтерфейсу. Від набору качок у Вікіпедії У комп’ютерному програмуванні з об'єктно-орієнтованими мовами програмування типи качок - це стиль динамічного введення тексту, в якому поточний набір методів і властивостей …

3
Як ви використовуєте набір качок у javascript, не перевіряючи завжди властивості та методи?
Я знаю, що JavaScript використовує набір качок, і спочатку я думав, що це полегшить поліморфізм порівняно з сильно набраними мовами, такими як C #. Але тепер мої функції, які беруть аргументи, вписані такими, як: if(myObj.hasSomeProperty()) або if(myObj.hasSomeMethod()) або if(isNumber(myParam)) тощо. Це справді некрасиво для мене. Я надходжу з фону C …

1
Введення качок, перевірка даних та затверджувальне програмування в Python
Про набір качок : Введення качок допомагає звичайним чином не перевіряти тип аргументів у органах методів та функцій, спираючись на документацію, чіткий код та тестування для забезпечення правильного використання. Про перевірку аргументів (EAFP: простіше просити пробачення, ніж дозволу). Адаптований приклад звідси : ... вважається більш пітонічним зробити: def my_method(self, key): …

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