mobile theme mode icon
theme mode light icon theme mode dark icon
speech play
speech pause
speech stop

Python'da Dekoratörleri Anlamak

Dekoratörler, bir nesnenin orijinal uygulamasını değiştirmeden, bir nesnenin davranışını değiştirmenize veya genişletmenize olanak tanıyan bir tasarım modelidir. Başka bir deyişle, dekoratörler mevcut bir nesnenin çekirdek kodunu değiştirmeden ona yeni işlevler eklemenizi sağlar.

Bir dekoratör genellikle bir nesneyi argüman olarak alan ve orijinal nesneyi "saran" yeni bir nesne döndüren bir işlevdir. Yeni nesne, orijinal nesneyle aynı yöntemlere ve niteliklere sahiptir, ancak aynı zamanda dekoratör tarafından sağlanan bazı ek işlevlere veya davranışlara da sahiptir. ()` arabayı hareket ettirir. Arabanın hızını sınırlamak için 'drive()' yöntemini değiştiren 'SpeedLimitDecorator' adlı bir dekoratör oluşturabilirsiniz. 'SpeedLimitDecorator', orijinal 'Araba' nesnesini argüman olarak alır ve orijinal 'Araba' ile aynı yöntemlere ve niteliklere sahip, ancak hızı sınırlama ek işlevselliğine sahip yeni bir 'Araba' nesnesi döndürür. Python'da bir dekoratörü nasıl kullanabileceğinize dair örnek:
```
class Car:
def Drive(self):
print("Araba sürüyor")

class SpeedLimitDecorator:
def __init__(self, car):
self. car = car

def Drive(self):
self.car.drive()
print("Araba artık 50 mph ile sınırlıdır")

car = Car()
speed_limited_car = SpeedLimitDecorator(car)
speed_limited_car.drive() # prints "Araba sürüyor" ve "Araba şu anda 50 mil/saat ile sınırlıdır"
```
Bu örnekte, 'SpeedLimitDecorator' sınıfı, yapıcısında bir 'Car' nesnesini argüman olarak alır ve ardından 'drive(') dosyasını değiştirir. Orijinal 'Araba' nesnesinin hızını sınırlamak için )' yöntemi. `SpeedLimitDecorator` sınıfı ayrıca sarılmış nesnenin orijinal `drive()` yöntemini çağıran kendi `drive()` yöntemine sahiptir, ancak buna ek olarak saatte 50 mil sınırlaması vardır.

Dekoratörler mevcut nesneleri değiştirmek veya genişletmek için güçlü bir araçtır orijinal uygulamalarını değiştirmeden. Kodun geri kalanını etkilemeden yeni işlevsellik eklemek, davranışı değiştirmek ve hatta bir nesnenin uygulamasının bazı kısımlarını değiştirmek için kullanılabilirler.

Knowway.org sizlere daha iyi hizmet sunmak için çerezleri kullanıyor. Knowway.org'u kullanarak çerezleri kullanmamızı kabul etmiş olacaksınız. Detaylı bilgi almak için Çerez Politikası metnimizi inceleyebilirsiniz. close-policy