Dekoratörlere Giriş
Coddy'nin Python Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 9 / 64.
Dekoratörler, fonksiyonları ve sınıfları orijinal kodlarını değiştirmeden modifiye etmenin veya geliştirmenin bir yoludur. @ sembolünü kullanırlar.
İşte basit bir dekoratör örneği:
def my_decorator(func):
def wrapper():
print("Before function runs")
func()
print("After function runs")
return wrapperDekoratörü @ kullanarak uygulayın:
@my_decorator
def say_hello():
print("Hello!")Dekore edilen fonksiyonu çağırın:
say_hello()Çıktı:
Before function runs
Hello!
After function runs@my_decorator kullanımı, aşağıdakini yazmakla eşdeğerdir:
def say_hello():
print("Hello!")
say_hello = my_decorator(say_hello)Ancak @ söz dizimi çok daha temiz ve okunması daha kolaydır.
Önemli Nokta: Dekoratörler, orijinal fonksiyon kodunu değiştirmeden ekstra işlevsellik eklemek için fonksiyonları sarmalar
Kopya kağıdı
Dekoratörler, @ sembolünü kullanarak fonksiyonları orijinal kodlarını değiştirmeden modifiye eder veya geliştirirler.
Temel dekoratör yapısı:
def my_decorator(func):
def wrapper():
print("Before function runs")
func()
print("After function runs")
return wrapper@ kullanarak dekoratörü uygulayın:
@my_decorator
def say_hello():
print("Hello!")@my_decorator sözdizimi şuna eşdeğerdir:
say_hello = my_decorator(say_hello)Kendin dene
Bu ders bir kod alıştırması içermiyor.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Object Oriented Programming bölümündeki tüm dersler
1OOP Temelleri
Harici DosyalarOOP'ye GirişSınıflar ve Nesnelerself ParametresiMetotlarÖzniteliklerYapıcı Metot (__init__)Özet - Basit Hesap Makinesi4Kalıtım
Temel Kalıtımsuper() FonksiyonuMetot Geçersiz KılmaÇoklu KalıtımMetot Çözümleme SırasıÖzet - Çalışan Hiyerarşisi7Özel Metotlar
Sihirli Metotlara GirişOperatör Aşırı YüklemeKapsayıcı Sihirli MetotlarıÖzet - Özel Liste10Tasarım Kalıpları Bölüm 1
Tasarım kalıplarına girişSingleton KalıbıFactory KalıbıObserver KalıbıStrategy Kalıbı13Final Meydan Okumaları
E-öğrenme PlatformuBankacılık SistemiOyun Karakteri GeliştirmeAraç Kiralama Servisi5Çok Biçimlilik (Polymorphism)
Metot Geçersiz Kılmaya Yeniden BakışDuck TypingSoyut Sınıflar ve MetotlarArayüz TasarımıÖzet - Şekil Hesaplayıcı8İleri Düzey OOP Kavramları
Kompozisyon ve KalıtımMixinsStatik ve Sınıf MetotlarıSınıf DekoratörleriBağlam Yöneticileri11Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıKompozit Kalıbı