Алексей
которые по сути являются теми же самыми исключениями
Tishka17
Это скорее как кидать BaseException в питоне
Tishka17
один конкретный кейс
Pavel
Это скорее как кидать BaseException в питоне
ну исключения в питоне тоже надо уметь готовить, от этого ты никуда не уйдёшь
Tishka17
ну вот паника - это именно BaseException, а для други- возвращает error
Алексей
паник - не замена исключениям.
ну они плавают как исключения, крякают как исключения
Алексей
а ещё там вроде как какая-то либа парсинга жсон была
Vladislav
зато ЯВНО (хрен знает, что они на самом деле под этим понимают)
ну почитайте про goto scope, станет понятнее. к питону правда это никакого отношения не имеет
Алексей
в которой паники использовались ровно как исключения
Tishka17
ну они плавают как исключения, крякают как исключения
и не имеют иерархии в отличие от исклбчений
Aragaer
вон в лиспах уже много десятилетий есть conditions, которые круче всех этих ваших эксепшонов
Алексей
https://habr.com/ru/company/oleg-bunin/blog/445234/ не про эту ли статью речь?
ну и костылить недомонады в питоне - это верх извращения
Vladislav
внезапно, мы в чатике про.... ПИТОН?..
а точно не про яву, го и хаскель, упомянутые выше ? )
Pavel
а точно не про яву, го и хаскель, упомянутые выше ? )
честно говоря, я уже сомневаюсь. сейчас еще кто-нибудь даташыт на восьмой кортекс притащит и попросит что-нибудь объяснить. тогда гештальт закроется.
Pavel
вот только исключения путешествуют вверх по стеку в одном направлении довольно предсказуемым образом, так что ничего общего с goto не имеют
вообще, путь исключения вверх по стеку можно изрядно осложнить... (на правах кретинизма кусок говнокода) def r(): if random.random() > 0.99: raise RuntimeError('Enough') return r()
Туночка️
Алексей
а ещё забавно слышать про какую-то неявность исключений именно в питон чатике, где вообще динамическая типизация
Vladislav
они и по отдельности могут существовать
Алексей
просто динамическая типизация сама по себе одна большая неявность
Алексей
и куда большая, чем исключения
Vladislav
не соглашусь. при динамической типизации скоуп "неявности" - только тип, а переменная то вот она, доступна. в отличии от исключений, которые могут взяться откуда угодно
Туночка️
хз
в хелпе нету ничего похожего на stop
Artyem
и из этого ну вообще никак не следует, что другие механизмы, в данном случае исключения, должны работать каким-то определённым способом (согласованным по прилагательным), и допустим быть неявными
Tishka17
в хелпе нету ничего похожего на stop
ты наверно можешь выклюить проект просто
Vladislav
они во всех языках откуда угодно могут взяться, даже в Go
да. кроме тех, где исключений (которые можно обработать) - нет
Туночка️
наверное
Туночка️
я не знаю
Алексей
ну без статической типизации нормально сделать тот же аналог Maybe/Either скорее всего не получится, чтобы явно было
и вообще с подобным механизмом нужно накладывать довольно неслабые ограничения на код, чтобы проигнорировать ошибку было бы как минимум очень сложно, а лучше чтоб вообще невозможно
rgbdev
Привет, кто нибудь может подсказать по ctypes? Правильно ли? N = 48 class someCstruct(ctypes.Structure): _fields_ = [ ("sA", ctypes.c_ubyte * N), ("nB", ctypes.c_int) ("nC", ctypes.c_int) ] data = someCstruct((c_ubyte * N)(*[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])) по сути нет (не хватает двух последних аргументов), но питон3 кушает?
Алексей
в этом то и прелесть исключений, что надо постараться, чтобы их потерять, потому что рано или поздно они где-то кем-то будут обработаны
Artyem
и вообще с подобным механизмом нужно накладывать довольно неслабые ограничения на код, чтобы проигнорировать ошибку было бы как минимум очень сложно, а лучше чтоб вообще невозможно
это всё замечательно, но точно также никак не раскрывает тему почему и динамичности языка должна следовать неявность исключений и тем более почему этого кому-то может не нравиться
Vladislav
так не выйдет
гм. вообще-то оно так и работает
Алексей
гм. вообще-то оно так и работает
Нет, взгляните на rust, на haskell, да даже на go. Там везде ошибки начинают накладываться на типы возвращаемых значений.
Vladislav
например в с - игнор возвращаемого результата - варнинг/билд тайм ошибка
Алексей
потому что питон не знает, что возвращает та или иная функция, может она всегда None возвращает, а может когда-то None, когда-то не None
Vladislav
а в питоне нет
ну, собственно, что хотеть от интерпретируемого скрипта
Vladislav
Нет, взгляните на rust, на haskell, да даже на go. Там везде ошибки начинают накладываться на типы возвращаемых значений.
не совсем понял, что это должно значить, и чем это отрицает возможность автоматической проверки использования возвращаемого значения (не юзером)
Vladislav
статический анализ в во время компиляции от генерации исключения во время работы? примерно всем )
SkyLord
Всем привет. Всех с пасхой. Не подскжет кто то русскую групу по джанго ?????
Anonymous
Кто давно сидит на джанго?
Vladislav
какой статический анализ в динамическом языке?
когда это си стал динамическим языком?
Алексей
когда это си стал динамическим языком?
мы сейчас про питон говорим
Vladislav
мы сейчас про питон говорим
буквально в нескольких предложениях выше был диалог с явным указанием кто о чем говорит. перечитайте чтоли
Алексей
если говорить про питон, то как вы представляете питон без исключений?
Vladislav
никак, честно говоря
Vladislav
потому, что это будет что угодно, но уже не питон
Алексей
и любой явный механизм будет требовать наличия статической типизации или чего-то похожего
Алексей
даже кстати в упомянутой выше статье про то, что исключения - это якобы антипаттерн, автор не смог обойтись без аннотаций типов
Алексей
но только аннотации типов интерпретатор ни к чему не обязывают, а не обработать возвращаемое значение функции с потенциальной ошибкой проще простого
Denis
Не, ну .unwrap() всегда написать можно
Vladislav
*случайно
Pavel
Кто давно сидит на джанго?
ты еще про хмурый спроси
Denis
Кто давно сидит на джанго?
Ты ищешь, кого бы заебать в лс, или статистику собираешь?
Алексей
Случайно там не получится пропустить, система типов и проверки компиляторов не дадут.
Artyem
а где их нет? в rust наверное только
кстати в фортране нет исключений, это конечно тот ещё динозавр
Denis
В rust есть паники, которые почти исключения
Алексей
кстати в фортране нет исключений, это конечно тот ещё динозавр
в сишке тоже нет, но сишка вообще не располагает к написанию безопасного кода
Anonymous
Ищу репетитора по Django))
Denis
Сколько в час платишь?
👤 алеkсей
неслабая у вас тут прелюдия... Ко мне девушка пришла с 2500 строчним питоном парсящим кинопоиск, стоит её сюда отправить или её тут ногами попинают? Москва. код: https://yadi.sk/d/D5agPz1p5js0JA диагноз: вчера работало а сегодня нет.
Tishka17
для нчала пусть на файлы разобьет
Кіт ✙
подскажите, у кого какие реализации проверки слова на палидромность?