Польза оператора Walrus в Python
Друзья, давайте рассмотрим интересный оператор в Python - walrus, или моржовый.
Он появился в питоне, начиная с версии 3.8 и представляет собой двоеточие со знаком равно
:=
Чем он может быть полезен разработчику?
Основная его суть в том, что мы можем выполнить присваивание переменной прямо внутри выражения, и при этом выражение по-прежнему сможет возвращать значение.
Вот самый простой пример - в первом принте мы использовали оператор walrus, но при этом не только присвоили значение переменной variable, но и смогли вернуть значение на вход функции print - поэтому она смогла распечатать значение.
С обычным присваиванием через равно =, такой трюк работать не будет:
И нам пришлось бы писать что то вроде:
То есть больше строк кода, чтобы добиться того же результата.
Согласен, пример довольно искусственный, но помимо компактности, walrus оператор может нам помочь также уменьшить количество вызовов функций и процессорного времени.
Давайте посмотрим на пример со списковым включением - из исходного списка lst сделаем список кубов, причем только тех кубов, которые меньше 150.
В первом случае мы дважды вызвали n**3 для каждого элемента, а во втором только один - так как сразу присвоили значение переменной cube. Поэтому во втором случае будет тратиться в 2 раза меньше процессорного времени.
Walrus мы можем использовать также внутри условия, ведь оператор опять же вернет значение, которое можно с чем-либо сравнить. Единственное, нужно заключить в скобки присваивание с помощью walrus:
В целом, оператор представляется полезным, он помогает сэкономить число строк кода и в отдельных случаях процессорное время. Но некоторым разработчикам его синтаксис кажется несколько усложняющим чтение, особенно для списковых выражений
Спасибо за прочтение, друзья
Пишите в комментах, что думаете по поводу walrus оператора и полезен ли он Вам, а вот здесь я публикую еще и разборы решений задачек с собеседований.
 
				



