Strategy
- Python kursu
- İleri seviye
- Ders 63/83
- 5 dk
Strategy desenini öğrenirsin.
Strategy
Strategy, bir işlemin farklı yöntemlerini çağrılabilir nesneler olarak tanımlar; istemci çalışma anında birini seçer. Python'da işlevler doğal çağrılabilirdir, bu yüzden Strategy işlevleri kullanmak kolaydır.
def add(a, b):
return a + b
def mul(a, b):
return a * b
def calculate(strategy, a, b):
return strategy(a, b)
print(calculate(add, 3, 4)) # 7
print(calculate(mul, 3, 4)) # 12Strategy, koşullu dalları (if/elif) çağrılabilir nesnelere çevirir; bu, kodun genişletilmesini kolaylaştırır.
işlev stratejisi
Python'da işlevler birinci sınıf nesnelerdir; bir işleve parametre olarak geçirilebilir, listede saklanabilir. Bu, Strategy desenini uygulamayı kolaylaştırır.
strategies = [add, mul, lambda a, b: a - b]
for s in strategies:
print(s(10, 3)) # 13, 30, 7Sınıf tabanlı strateji de mümkündür; ancak işlev genellikle daha kısa ve okunurdur.
Uygulama Strategy ile hesapla
def add(a, b): ve def mul(a, b): işlevlerini tanımla (add return a + b, mul return a * b yapsın). def calculate(strategy, a, b): işlevini yaz; return strategy(a, b) yapsın. print(calculate(add, 3, 4)) ve print(calculate(mul, 3, 4)) ile sonuçları yazdır.
Başlangıç kodu
# add ve mul işlevlerini tanımla
# calculate işlevini yaz: strategy parametresini çağırır
# add ve mul stratejileriyle calculate çağrısı yap ve sonuçları yazdırÖrnek çözüm
def add(a, b):
return a + b
def mul(a, b):
return a * b
def calculate(strategy, a, b):
return strategy(a, b)
print(calculate(add, 3, 4))
print(calculate(mul, 3, 4))Beklenen çıktı
7 12
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Strategy kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
strategy parametresi |
Çağrılabilirdir |
add, mul |
Strateji işlevleridir |
calculate(strat, a, b) |
Stratejiyi çağırır |
if/elif |
Stratejisiz kodda kalır |
2 Strategy deseninde calculate(strategy, a, b) nasıl çalışır?
- strategy(a, b) çağrılır Doğru cevap
- strategy yok sayılır
- strategy yazdırılır
- strategy silinir
Açıklama: calculate, strategy parametresini çağırır; bu bir işlevdir.
3 calculate gövdesini tamamla
def calculate(strategy, a, b):
return ____(a, b)
def calculate(strategy, a, b):
return strategy(a, b)
Açıklama: return strategy(a, b) ile strateji çağrılır.