Python Language Summit 2020 — Набор текста на Python


Саммит Python стал виртуальным по очевидным причинам. Есть много интересных разговоров, но тот, который вызвал мой интерес, был посвящен постепенному добавлению постепенного набора текста в Python. Я собирался назвать новость «Набор текста на Python считается вредным», но потом передумал.

Я действительно не хотел навлекать на себя собак html, но пусть Гвидо ван Россум просветит вас:

«Есть много ПЕП о наборе текста!» — сказал Гвидо ван Россум на языковом саммите. С 2014 года было одобрено десять PEP для функций проверки типов Python. Два из них были одобрены уже в этом году: относительно «эзотерический» PEP 613: Явные псевдонимы типов, и еще один, который будет иметь широкое влияние, PEP 585: Типовые намеки На дженерики В стандартных коллекциях, написанные Лукашем Лангой и в основном реализованные ван Россумом.»

Обратите внимание на использование термина «эзотерический» — это звучит так, как будто Гвидо не является истинным верующим в основе всего этого.

Хорошая вещь в Python заключается в том, что вы можете вообще не печатать, но если вы чувствуете себя виноватым, вы можете использовать дополнительный набор текста. Поначалу это кажется легким и даже полезным.

Что может быть не так с указанием сигнатуры функции? Но потом начинается гниль. Все усложняется. Вы должны придумать, как вводить сложные вещи, такие как функции в целом или структуры данных. Вы изобрели дженерики, и это нелегко, и тогда возникает целая проблема ковариации и контравариантности. Все это трудно понять и трудно понять правильно.

это быстро переходит от веселой игры с интами к кошмару с:

T=TypeVar(‘T’,ковариант=True)класс MyClass(Generic[T]): def __init__(self,value:T)-> None: self.MyAttribute:T=значение

и еще хуже.

Аннотации типов Python на самом деле ничего не делают, если вы не запустите проверку типов, например, mypy, поэтому я полагаю, что они не настолько ограничительны. Но это просто делает их использование еще менее полезным.

Python, похоже, накапливает аннотации типов, как камень собирает мох.

«Это отметил Юрий Селиванов.Необязательный[t] может быть заменен на t | None и задан вопрос, можно ли его еще больше сократить как t?. «Каждый год, — ответил Ван Россум, — есть еще одна особенность, для которой люди хотят использовать знак вопроса.» По его мнению, t | None достаточно удобен, и другой синтаксис был бы излишним. »

Хорошая работа, Гвидо все еще там, чтобы ограничить его распространение. Когда его спросили о прогрессе в наборе текста, он сказал, что перешел на пенсию и что статический список рассылки Python нуждается в большем количестве людей, чтобы присоединиться к нему.

Я пишу довольно большие программы на Python, и я могу честно сказать, что у меня никогда не было ошибки, которую сильная типизация помогла бы мне найти или помешала бы мне сделать. Я знаю, что выражаю мнение меньшинства, но я думаю, что опыт аннотации типа Python свидетельствует о том, что меньшинство может иметь точку зрения.

Майк Джеймс недавно завершил работу над программистским Python: Objects & Attributes, первым томом в его программистском Python: Что-то совершенно другое. При подготовке этой книги он развил новую страсть к Python 3.


Добавить комментарий