Что?
Новый оператор позволяет переменным назначениям в выражениях (также называемых оператором Walrus). Это началось как предложение в Pep572 и стал доступен в Python 3.8.
Преимущества
- Сделать вещи более компактными.
- Compress Code при использовании регулярных выражений.
- Ускорить обработку больших данных.
- Код более читабелен.
Примеры
Хороший пример можно найти в Pep572 документация:
Текущий:
Улучшен:
Этот код из ядра Python, и является улучшенной версией Copy.py.
Мы можем использовать в любом состоянии состояния:
# While loop while (command := input("> ")) != "quit": print("You entered:", command)
# Any if any((comment := line).startswith('#') for line in lines): print("First comment:", comment) else: print("There are no comments")
# List comprehenssion stuff = [[(f(x) as .y), x/.y] for x in range(5)] # with "as"
Наблюдения
Оператор не может быть использован для всего, в некоторых случаях он не будет работать:
a := 1 #INVALID must be done with a=1. a = b := 2 #INVALID must be done with a=b=2
Я ценю всех, кто прочитал здесь, если вы, ребята, есть что-нибудь добавить, пожалуйста, оставьте комментарий.
Оригинал: “https://dev.to/lgdev07/what-i-ve-learned-today-2-walrus-operator-in-python-1984”