Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.99/76: Рейтинг темы: голосов - 76, средняя оценка - 4.99
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755

Точность выполнения кода в задачах жизни и смерти. Утиная типизация (Duck tuping)

19.11.2019, 07:48. Показов 15585. Ответов 125

Студворк — интернет-сервис помощи студентам
Это принцип в Python по аналогии, что когда что-то крякает, как утка и ходит, как утка, то это является уткой. Если буду писать программы, связанные с медицинской диагностикой с разветвлениями алгоритма в тысячи вариантов, то как избежать ошибок, чтобы программа не приняла одни данные за другие?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.11.2019, 07:48
Ответы с готовыми решениями:

Утиная типизация
Нужно ли проверять типы данных аргументов передаваемых в метод класса или функции, как лучше делать: проверять с помощью isinstance или...

Утиная типизация
Подскажите пожалуйста, две ситуации Первая, у меня есть метод который работает int float , но если будет передаваться, что-то другое...

дело жизни и смерти
У меня скоро конец семестра,а училка задала мне задачи,а я в паскале ничего не понимаю( Помогите,а то меня не аттестуют. и...

125
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
24.11.2019, 16:05
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от Рыжий Лис Посмотреть сообщение
В линуксах с этим попроще
Да линукс вообще рулит!


0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
24.11.2019, 17:45  [ТС]
А существуют ли какие нибудь неочивидные нюансы в контексте обсуждаемой темы, когда программа создаётся под Windows, а запускается под Linux и наоборот?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.11.2019, 05:48
Думаю, особых ньюансов нет. Если не использовать ос-специфичные функции, то код вполне становится кроссплатформенным и переносимым.

Максимум с чем можно столкнуться - отсутствием нужных библиотек под нужную ОС/архитектуру процессора/разрядность/версию питона.
1
Эксперт Python
 Аватар для dondublon
4661 / 2080 / 367
Регистрация: 17.03.2012
Сообщений: 10,202
Записей в блоге: 6
25.11.2019, 10:56
supmener, неочевидные нюансы - на то и неочевидные, что, пока не столкнёшься - - -
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
25.11.2019, 15:47  [ТС]
Если не использовать ос-специфичные функции
А как их отличить от других?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.11.2019, 15:59
Обычно в документации помечено типа:
os.ctermid()
Availability: Unix.

os.O_TEXT
The above constants are only available on Windows.
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
26.11.2019, 22:20  [ТС]
В начале темы советуют учить шаблоны проектирования. А не кажется ли кому то из Вас, что это распространенное заблуждение и на самом деле ими нельзя решить основные проблемы программирования?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.11.2019, 22:24
supmener, а что ты вкладываешь в понятие "основные проблемы программирования"?
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
26.11.2019, 22:39  [ТС]
Возможно основные проблемы программирования выходят за рамки этой темы. Хотелось бы узнать, если изучить шаблоны проектирования, то можно ли точно без ошибок (не связанных с человеческим фактором) применять Python в медицине, расчётах траекторий летательных аппаратов и других местах, где важно безошибочное выполнение алгоритмов?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.11.2019, 22:45
Паттерны не имеют отношения к алгоритмам. Ни малейшего. Это общая организация программы.
Алгоритмы - кирпичи и цемент. Паттерны - проект стройки. Отношения строителей, поставщиков, архитекторов и т.д.
Разный уровень в-общем. Так что в архитектурном плане программа может быть написана идеально, а с алгоритмами аццкий косяк. И наоборот.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
26.11.2019, 23:08  [ТС]
Так можно ли писать программы (как задавал в вопросе)? Например в системе просчёта маршрутов железной дороги? Есть ли вероятность, что пассажиры или груз уедут не в тот город?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.11.2019, 23:21
Похоже, я не смог донести до тебя свою мысль по паттернам и алгоритмам. Здание упадет, если я построю балкон с северной стороны, а не дверь с южной?
Цитата Сообщение от supmener Посмотреть сообщение
Есть ли вероятность
Даже палка раз в год стреляет...

Человеческий фактор будет присутствовать всегда. Спутники, вон, и те падают...
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
27.11.2019, 11:54  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Любой язык со строгой типизацией, если я правильно понял ваши опасения.
Добавлено через 40 секунд
c++/scala/rust/go…
А Haskell? Ещё заметил такой нюанс, в некоторых статьях указывают на наличие строгой типизации в языках, о которых думал, что в них она другая, например в одной статье увидел это про Python.
Сильная / слабая типизация (также иногда говорят строгая / нестрогая). Сильная типизация выделяется тем, что язык не позволяет смешивать в выражениях различные типы и не выполняет автоматические неявные преобразования, например нельзя вычесть из строки множество. Языки со слабой типизацией выполняют множество неявных преобразований автоматически, даже если может произойти потеря точности или преобразование неоднозначно.

Примеры:
Сильная: Java, Python, Haskell, Lisp;
Слабая: C, JavaScript, Visual Basic, PHP.
Источник habr.com/ru/post/161205/
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
27.11.2019, 12:08
Не знаю, Haskel не пользовался.

В цитате речь идёт про неявные преобразования типов и что они запрещены в питоне. Это делает язык чуточку лучше, но не решает проблему динамической типизацией, когда тип переменной можно узнать только в runtime.
Python является одним из примеров языка с сильной динамической типизацией
Думаю, большинство компилируемых языков обладают статической типизацией.

Добавлено через 2 минуты
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
27.11.2019, 12:16  [ТС]
К сожалению не являюсь специалистом. В какой программе рисовали?
0
27.11.2019, 12:39

Не по теме:

Ответь в той теме, пожалуйста, чтобы не засорять эту

0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
27.11.2019, 12:57
В теории программирования сильная типизация является непременным элементом обеспечения надёжности разрабатываемых программных средств. При правильном применении (подразумевающем, что в программе объявляются и используются отдельные типы данных для логически несовместимых значений) она защищает программиста от простых, но труднообнаруживаемых ошибок, связанных с совместным использованием логически несовместимых значений, возникающих иногда просто из-за элементарной опечатки.
Например, яркими примерами слабой системы типов являются те, что лежат в основе языков Си и C++.
Python является одним из примеров языка с сильной динамической типизацией[7]
Источник . Да, это статья из вики, но писали то ее неглупые люди...

+ 100500 в карму Python c сравнении с классическими компилируемыми "супернадежными" мегаязыками.
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
03.12.2019, 10:06  [ТС]
Ввёл в Google
версия python со статической типизацией
и обнаружил статьи на эту тему.
А что Вы думаете по этому поводу?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.12.2019, 10:47
Не нашёл ничего по похожему запросу. Хватит из питона делать нечто со статической типизацией. Возьмите другой язык или покрывайте весь код тестами и/или проверками.

Теоретически, можно написать какую-нибудь проверку, но… зачем? Есть статические анализаторы. Есть тесты.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
DEBUG = True
 
def check_types(func):
    if not DEBUG:
        return func
 
    r_type = func.__annotations__['return']
 
    def wrap(*args, **kwargs):
 
        res = func(*args, **kwargs)
        assert isinstance(res, r_type), 'error return type function "%s"' % func.__name__
        return res
    return wrap
 
 
@check_types
def f(arg: int) -> list:
    return 0
 
print(f(1))
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
03.12.2019, 10:55  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Хватит из питона делать нечто со статической типизацией
Так я не виноват, что уже сделали. Сам пока не изучал:
http://ansona.pro/static_types_python/
https://habr.com/ru/post/437018/
https://www.youtube.com/watch?v=NdX0-FnypjE
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.12.2019, 10:55

вопрос жизни и смерти!!
Помогите с заданиями, мне очень срочно нужно!!! я боюсь меня выгонят из универа((((( ПОЖАЛУЙСТА ПРОШУ ВАС ПОМОГИТЕ!!(((( я написал...

Вопрос жизни и смерти
Дали задание в универе. В Delphi разбираюсь не очень. Прошу помощи как можно скорее. Задать любым изместным пользователю способом...

Вопрос жизни и смерти..
Парни помогите кто хорошо знает С++ просто если я к понидельнику не сдам ету програму мне прийдет писец... Вот собственно задание: ...

Файлы.(Вопрос жизни и смерти)
Создать файл, где каждой компонентой будет массив из N чисел. Определить минимальное значение в каждой компоненте, записав их в другой...

СРОЧНО!!! вопрос жизни и смерти !
ПОМОГИТЕ ПОЖАЛУЙСТА РЕШИТЬ ЗАДАЧУ. Задача Считать из текстового файла информацию в массив строк.Отобразить на экран.Удалить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru