В 2018 году Python получил оператор присваивания в выражениях
:=, известный как walrus operator. Он появился благодаря PEP 572 и стал одной из самых обсуждаемых фич за всю историю языка.Что это такое?
Оператор позволяет присвоить значение переменной прямо внутри выражения:
if (n := len(data)) > 10:
print(f"Слишком длинный список: {n} элементов")
Зачем?
Это упрощает код, избавляя от дублирования. До
:= приходилось дважды писать одно и то же выражение: сначала вычислять его, потом использовать.
n = len(data)
if n > 10:
print(f"Слишком длинный список: {n} элементов")
⚠️ Почему сообщество было против?
* Новый синтаксис казался слишком «магическим» и непривычным.
* Опасения, что Python потеряет читаемость и станет «вторым Perl».
* Многие считали, что выгода слишком мала, чтобы ломать стиль кода.
Финальное решение
Несмотря на жаркие споры, Гвидо ван Россум лично принял решение в пользу PEP 572. Но цена оказалась высокой: давление и негатив вокруг этой дискуссии подтолкнули его уйти с поста BDFL (Benevolent Dictator For Life).
К чему это привело?
* Python получил «walrus» начиная с версии 3.8.
* Управление языком изменилось навсегда: вместо одного лидера теперь решения принимает Steering Council, избираемый core-разработчиками.
* Этот кризис стал поворотной точкой: Python перешёл к более демократичной модели развития.
🐍 Оператор
:= изменил не только синтаксис, но и саму систему управления Python.А вы используете walrus в своём коде или до сих пор относитесь к нему с недоверием?