Python Schoolby trefilov
Шаг 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.