vitus_wagner (
vitus_wagner) wrote2020-01-05 09:37 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Entry tags:
Питонистическое.
Выяснил что в стандартной библиотеке питона модуль collections, а в нем функция namedtuple. Позволяющая генерировать наборы данных с именованными полями и нулевым оверхедом. Более того named tuples - hashable, т.е. могут использоваться в качестве индекстов dict или элементов множества. И их очень удобно создавать из списков, dictionaries и тому подобных конструкций.
Теперь хочу реализацию операций реляционной алгебры над set of named tuples.
Теперь хочу реализацию операций реляционной алгебры над set of named tuples.
no subject
Down with static typing
А кому нужны Жаба и ЦиПлюкПлюк — пусть идут в Жабу и т.д.
Re: Down with static typing
Re: Down with static typing
В тех проектах, где я видел использование mypy — отсутствие type hints выдавало ошибку. Не знаю, можно ли это отключить. Я вместо этого предпочитаю просто не иметь дела с mypy.
Как написать type hint "в этом месте мне нужен экземпляр класса, имеющий метод
.read()
без параметров, возвращающий строку"?Re: Down with static typing
В общем виде это называется «протокол»:
В частном случае вообще может подойти
typing.TextIO
.И да, я применяю mypy в боевом проекте. Польза от наличия аннотаций типов как документации для читателя/мейнтейнера кода настаёт при размере проекта больше 150 SLOC. А польза от mypy — примерно с той точки, когда проект естественным образом разделяется на несколько файлов.
Re: Down with static typing
Re: Down with static typing
https://mypy.readthedocs.io/en/latest/protocols.html#protocol-types
Только не забывайте, что mypy -- это не статическая типизация, а проверка type hints там, где программист счёл их нужными. Если не написать type hints, ничего не будет -- например, если убрать "-> int" в описании класса Bad, ошибка исчезнет.
> В тех проектах, где я видел использование mypy — отсутствие type hints выдавало ошибку.
Я так понимаю, что Вы не видели использование mypy.
Re: Down with static typing
Я видел использование mypy в нескольких крупных проектах и сильно его там невзлюбил. :-( Отсутствие type hints там везеде приводило к ошибкам.
Re: Down with static typing
Выдавать ошибки на отсутствие аннотаций — это опция. И даже выключенная по умолчанию. Включить её принимает решение мейнтейнер проекта, в тот момент, когда проект уже достаточно аннотирован, или одновременно с решением аннотировать его весь.
В отдельных редких местах, где действительно применяется duck typing и кажется нецелесообразным прямо сейчас прописывать весь протокол, — ошибку можно заткнуть указанием аннотации
Any
(а лучше — отдельным типом, определённым как синонимAny
, с TODO’шкой когда-нибудь это расписать).Re: Down with static typing
src/backend/storage/smgr/md.c из постгреса, в котором Настя Лубенникова нашла комментарий вида FIXME, написанный до её рождения. и так и оставшийся на этом месте.