Использовать или нет моржовый оператор на Python?

✒️ Об этом размышляет KDnuggets . Почему ⁉️

⚠️ Потому что с одной стороны медали возможное присвоение значения переменной внутри выражения, а на другой - читаемость кода и от себя добавлю экономия памяти:

✴️На одной стороне: как показано на картинке ниже, упрощение кода до одной-двух строчек кода и несомненно экономия памяти;

✴️На другой стороне: не следует использовать вложенность для этого оператора, что усложняет восприятия кода, в данном случае, заполнение результирующего списка:

# Function to compute profit
def compute_profit(sales, cost):
        return sales - cost

 # Messy list comprehension with nested walrus  operator
 sales_data = [(100, 70), (200, 150), (150, 100), (300, 200)]
 results = [
 (sales, cost, profit, sales_ratio)
 for sales, cost in sales_data
 if (profit := compute_profit(sales, cost)) > 50
 if (sales_ratio := sales / cost) > 1.5
 if (profit_margin := (profit / sales)) > 0.2
 ]

Поэтому, как мне кажется, все равно выбор остаётся за Вами: лёгкость восприятия, читаемость или экономия памяти.

Краткая справка

👆Моржовый оператор(Walrus operator) был введен в Python 3.8 с целью помочь писать лаконичный и читаемый код ( в некоторых случаях). Однако, использовать его нужно с осторожностью, потому что можно сделать код трудно читаемым и сложным для восприятия. В тоже время, можно экономить память, так как отсутствуют лишние модификации переменных и как результат -- затраты памяти из-за сложной модели памяти⤵️

Картинка взята с KDnuggets

Использовать или нет моржовый оператор на Python? | Сетка — новая социальная сеть от hh.ru
repost

33

input message

напишите коммент

еще контент автора

еще контент автора

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь