Шаг 1 из 4+140 XP
Шаблоны проектирования
Strategy и Factory на Python — но через функции, а не классы-обёртки.
Strategy через функцию
def discount_strategy(kind):
return {
"loyal": lambda x: x * 0.9,
"vip": lambda x: x * 0.7,
}.get(kind, lambda x: x)
price = 100
print(discount_strategy("vip")(price)) # 70.0
В Python функции — объекты первого класса. Часто паттерны GoF превращаются в одну функцию или dict.