В Python есть малоизвестная фишка: можно использовать оператор присваивания
:= (его ещё называют «walrus»). Он позволяет присваивать значение прямо внутри выражения. Это делает код короче и избавляет от повторных вызовов функций. 📌 Особенности:
• Работает в
while, if, list comprehension. • Удобен для сокращения кода и избежания дублирования.
• Но злоупотребление может сделать код менее читаемым.
🟢Пример: удобно при чтении строк из файла или работе с регулярными выражениями.
Чтение строк из файла с walrus-оператором
def read_file(path):
with open(path) as f:
while (line := f.readline()):
print("Строка:", line.strip())
# Поиск совпадения через regex
import re
pattern = re.compile(r"\d+")
if (match := pattern.search("abc123xyz")):
print("Нашли число:", match.group())
# Применение в list comprehension
nums = [s for s in ["42", "hello", "100"] if (n := s.isdigit())]
print(nums) # ['42', '100']
📌 Больше фишек Python
@pythonl