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.
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, написанный до её рождения. и так и оставшийся на этом месте.