maxlunar
датаклассы существуют как отдельный модуль использующий аннотации типов
koder
они опциональны
и? почти все опционально.
maxlunar
сами по себе аннотации нихуя не делают
koder
сами по себе аннотации нихуя не делают
ты о чем-то другом говоришь и не читаешь, что я написал
Well Done
в чем проблема?
Только в том, что я просыпаю самые важные вещи и не в курсе что по чем, если честно
maxlunar
ты о чем-то другом говоришь и не читаешь, что я написал
окай, что ты подразумеваешь под типизацией?
Andrey
Я так и не понял что в языке поменялось так сильно. С 3.3 asyncio, сахарок в виде async/await. Typing от которого толка особо нет, на рантайм оно не влияет. Применение ограничено довольно в динамических языка.
🍁 Jaŭhien
Тайпинг проверяется с помощью линтеров
Andrey
Про dataclasses прочитать минут 10 нужно. Это не изменения в языке.
koder
окай, что ты подразумеваешь под типизацией?
стандартная питоновская типизация. Ее использование очень сильно меняет код, в т.ч. заставляет по другому раскладывать классы и функции по модулям, выделаять интерфейсы, использовать abc и прочее
Anonymous
Привет! Есть те, кто пользуется digitalocean? У вас получается соединиться с сервером? У меня пропало соединение и никак не получается соединиться снова
koder
значит ты ее не использовал
🍁 Jaŭhien
Тайп хинты он имеет в виду, а не систему типов
koder
как, видимо, и датаклассы
maxlunar
т.е аннотации типов это у нас не тайпхинты теперь?
koder
т.е аннотации типов это у нас не тайпхинты теперь?
это одно и то же самое, я кривоватый термин использовал
maxlunar
даже слот под них называется __annotations__
maxlunar
и в PEP 484 не раз упоминается слово annotation
🍁 Jaŭhien
Вообще, если кто знает хорошую книгу по новому питону - буду рад советам
maxlunar
Вообще, если кто знает хорошую книгу по новому питону - буду рад советам
туториал в доках всегда будет актуален, я бы везде советовал его читать
maxlunar
а если инглиш не знаешь... увы, большая часть ресурсов, документации по библиотекам - всё это на инглише
maxlunar
Я его не читал :)
я читал, достаточно интересно написано
🍁 Jaŭhien
Инглиш я знаю, мне интересно почитать что-то где глубоко копают
🍁 Jaŭhien
Вот как fluent python (да, лучшая книга по питону, я считаю)
Andrey
Тайпинг проверяется с помощью линтеров
Фигня это всё. Проверит можно только в рантайме, когда есть данные. Поэтому пользы мало. Документирование. Валидация, можно аннотации прочитать и проверить, что типы те что ожидали.
koder
Вот как fluent python (да, лучшая книга по питону, я считаю)
тебе в качестве примеров или в качестве советовать другим что читать?
maxlunar
там чуть ли не все что для начала нужно покрывается
🍁 Jaŭhien
koder
Фигня это всё. Проверит можно только в рантайме, когда есть данные. Поэтому пользы мало. Документирование. Валидация, можно аннотации прочитать и проверить, что типы те что ожидали.
ты совсем не прав. Полностью протипизированный код отлавливает почти все ошибки вида TypeError/AttributeError без прогона. Проверенно на себе
Andrey
Никакого абсолютно улучшения системы типов не произошло. Даже основные больные места не поправили.
koder
Мне в качестве "почитать на досуге" :)
самообразования? По некоторым темам (типа asyncio) лучше всего youtube (
koder
полностью написанный без хинтов код с прямыми руками работает нормально
ну значит ты мужик, но таких как ты - единицы (если не нули). Остальные стабильно ловят attributeerror
🍁 Jaŭhien
самообразования? По некоторым темам (типа asyncio) лучше всего youtube (
Вот по asyncio в ютубе не так уж и много полезной информации. Дока, кстати, очень хороша
Andrey
Да в рантайме можно их использовать. В момент когда известны данные. Это такая более вменяемая замена assert не более.
koder
ну типа проверяют, что ты не пытаешься вызвать функцию, которая принимает строку, передав ей int. Причем 95% всего тебе уже pycharm подсказывает - он понимает аннотации и на лету помогает. То же с аттрибутами структур, длинами туплов и прочее
koder
Да в рантайме можно их использовать. В момент когда известны данные. Это такая более вменяемая замена assert не более.
в рантайме есть чекеры, но они не оправдывают привносимые тормоза чаще всего
Julian 🏳️‍🌈
полностью написанный без хинтов код с прямыми руками работает нормально
Вообще, тут надо было сказать о том, что хорошо написанный код на асме с прямыми руками работает отлично. Но я скажу, что когда вот этих ваших языков програмирования не было и была тока палка и камень было еще пизже. Главное руки прямые.
koder
Ну продолжайте дальше верить, что он как-то магически помогает.
ты точно странный, думаю говорить смысла не имеет
Julian 🏳️‍🌈
Ну продолжайте дальше верить, что он как-то магически помогает.
Ну лол, в компилируемых языках проверка типов работает без рантайма.
Andrey
в рантайме есть чекеры, но они не оправдывают привносимые тормоза чаще всего
А иначе нет возможности ничего проверить. Чтобы проверить надо иметь данные.
Andrey
Andrey
Там тип жёстко привязан и неизменен.
Andrey
А тут я могу передать что хочу.
Julian 🏳️‍🌈
А иначе нет возможности ничего проверить. Чтобы проверить надо иметь данные.
Данные не приходят магически ниоткуда. Они приходят только от i/o где тип очень даже привязан и статичен.
Julian 🏳️‍🌈
И это все можно проверить без рантайма.
maxlunar
просто когда видишь такое, лучше выкинуть нахуй тайпинг и писать без него
Julian 🏳️‍🌈
Даже если иногда придется пройтись по ифам.
Andrey
И это все можно проверить без рантайма.
Как? Откуда знать заранее бд вернула целое или строку?
Andrey
Где эта декларация.
koder
Данные не приходят магически ниоткуда. Они приходят только от i/o где тип очень даже привязан и статичен.
нууу почти :) привет питон, если хочешь выстрелить себе в голову - то всегда привет. Но так то ты прав. При адекватном коде 99% всего отлично статически типизируется
Julian 🏳️‍🌈
Как? Откуда знать заранее бд вернула целое или строку?
Бд всегда вернет строку, либо целое. Потому что в пайтоне СТРОГАЯ типизация.
maxlunar
это больше мусор
Julian 🏳️‍🌈
один хрен
Вообще-то ты скинул говнокод, и хочешь этим что-то аргументировать.
koder
просто когда видишь такое, лучше выкинуть нахуй тайпинг и писать без него
это трешовые типы. Начнем с того, что вместо этих тюплов должны были бы быть структуры. Но да, бывает. Местами можно скипануть типы
Andrey
Ок.
Julian 🏳️‍🌈
это больше мусор
Если что, from typing import Typle И мусор магически исчезает.
maxlunar
+1 он там магическим образом не появится, если протекающий говнокод это не позволяет
Julian 🏳️‍🌈
Я потерялся кто о чем спорит
Andrey
ты точно странный, думаю говорить смысла не имеет
Ваше право. Просто аргументации нет никакой, кроме как пайшарм что-то там магически вывел. Рантайм чеков в cpython нет. И не будут вероятно никогда. Поэтому аннотации не помогут избежать ошибок с помощью какой-то магии.
Julian 🏳️‍🌈
Короче, типы детерминированы. И их всегда можно проверить в компайл тайме тупо распарсив синтаксическое древо.
Julian 🏳️‍🌈
Так тоже можно, но иногда нужно указать элементы tuple