|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
|
|
Точность выполнения кода в задачах жизни и смерти. Утиная типизация (Duck tuping)19.11.2019, 07:48. Показов 15374. Ответов 125
Это принцип в Python по аналогии, что когда что-то крякает, как утка и ходит, как утка, то это является уткой. Если буду писать программы, связанные с медицинской диагностикой с разветвлениями алгоритма в тысячи вариантов, то как избежать ошибок, чтобы программа не приняла одни данные за другие?
0
|
|
| 19.11.2019, 07:48 | |
|
Ответы с готовыми решениями:
125
Утиная типизация Утиная типизация дело жизни и смерти |
|
Просто Лис
|
||||||
| 03.12.2019, 11:06 | ||||||
|
Не по теме: лол:
Первая ссылка - это просто расстановка аннотаций. В рантайме это ничего не даёт. Вторая отсылает опять же как правильно расставлять аннотации, чтобы статический анализатор лучше понимал код. Видео посмотреть не могу.
1
|
||||||
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
|
||
| 03.12.2019, 11:16 [ТС] | ||
|
Что значит
0
|
||
|
Просто Лис
|
|
| 03.12.2019, 11:23 | |
|
Это когда программа выполняется (run time).
То есть, допустим, во время выполнения программы бросаются исключения (деление на ноль, выход за границы списка и прочее). Вот если бы аннотации проверяли на самом деле тип переменных и бросали бы исключения, если это не так - была бы польза от них. Но этого нет, потому что любая проверка в рантайме замедляет выполнение основного кода. Статическая проверка типов данных (в том числе статические анализаторы) смотрит на код, не важно будет ли он запущен и не важно выполнится ли когда-нибудь одна из веток кода - она всё проверит. В питоне же нельзя сказать точно, правильно написан ли код (может там обращение к несуществующей переменной?), если не выполнить его хоть раз.
1
|
|
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
|
|
| 03.12.2019, 11:43 [ТС] | |
|
Так решают ли нововведения проблемы динамической типизации с точки зрения обсуждаемой темы?
0
|
|
|
|
|
| 03.12.2019, 12:43 | |
|
supmener, а какие проблемы с динамической типизацией?
Если куда-то передали что-то не то - оно просто упадёт. И всё ок - ошибка выявлена, можно править. Чтобы пореже передавать что-то не то - существует type hinting (в широком смысле). Но это просто подсказки. Понимаете, питон изначально сделан с duck typing. Если вам по каким-то причинам это не нравится или не подходит - не используйте его. Не надо пытаться его переделать. Есть куча языков со строгой статичной типизацией, в том числе мейнстримовые. Но я бы просто посоветовал вам расслабиться и получить удовольствие. В duck typing есть свои плюсы, просто их замечаешь не сразу. Добавлено через 2 минуты supmener, кстати, я не в курсе, как в Аде обстоит дело со сборщиком мусора?
2
|
|
|
Просто Лис
|
||||||||||||
| 03.12.2019, 12:48 | ||||||||||||
1
|
||||||||||||
|
|
|
| 03.12.2019, 12:49 | |
|
supmener, и ещё один совет.
Если вам важна надёжность программ как реализованных алгоритмов - вам нужно тестирование. В смысле, его вам нужно изучить, как делается. В процессе изучения, кстати, появится и кое-какое понимание, как функции писать. Добавлено через 37 секунд Рыжий Лис, ну, всяко бывает. Это Питон
1
|
|
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
|
||
| 03.12.2019, 12:51 [ТС] | ||
Ада позволяет программисту выбрать один из следующих механизмов управления памятью: ручной режим. В этом случае программист освобождает память каждого объекта индивидуально. пул памяти. Объекты можно удалять, как каждый отдельно, так и весь пул целиком. сборщик мусора. Этот режим может быть реализован не во всех системах. Источник ada-ru.org
0
|
||
|
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
|
|
| 03.12.2019, 13:06 | |
|
Чувствую, тема скоро переместится в холивары. Там есть много ярых поклонников\ненавистников GC.
0
|
|
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
|
||
| 03.12.2019, 13:19 [ТС] | ||
|
Что такое GC?
Это Питон изучаю, а не АДА.
0
|
||
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
|
||
| 03.12.2019, 13:31 [ТС] | ||
|
О вопросах надежности в Python заинтересовался, когда узнал об утиной типизации. Посты в этой теме тоже очень помогли.
Добавлено через 1 минуту
0
|
||
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
|
|
| 14.12.2019, 19:30 [ТС] | |
|
если объявить две переменные: часы и минуты, и сложить их, Ада не даст. В Аде можно объявлять новые целочисленные типы данных с ограничениями вроде диапазонов возможных значений.
0
|
|
| 16.12.2019, 02:35 | |
|
0
|
|
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
|
|
| 16.12.2019, 18:40 [ТС] | |
|
А в Pypi нету модуля защиты от дурака? Чтобы сделать из Питона Аду?
0
|
|
|
|
||
| 16.12.2019, 20:01 | ||
|
Достаточно создать свои классы с нужными ограничениями. Ничто не мешает программисту сделать также в Python. Разве что его лень...
1
|
||
| 16.12.2019, 20:01 | |
|
Помогаю со студенческими работами здесь
80
вопрос жизни и смерти!!
Вопрос жизни и смерти.. Файлы.(Вопрос жизни и смерти)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|