mobile theme mode icon
theme mode light icon theme mode dark icon
Random Question Aleatoriu
speech play
speech pause
speech stop

Înțelegerea decoratorilor în Python

Decoratorii sunt un model de design care vă permite să modificați sau să extindeți comportamentul unui obiect fără a modifica implementarea originală a obiectului. Cu alte cuvinte, decoratorii vă permit să adăugați o nouă funcționalitate unui obiect existent fără a modifica codul său de bază. Noul obiect are aceleași metode și atribute ca și obiectul original, dar are și o funcționalitate suplimentară sau un comportament oferit de decorator.

De exemplu, să presupunem că aveți o clasă numită `Car` care are o metodă numită `drive ()` care face mașina să se miște. Puteți crea un decorator numit `SpeedLimitDecorator` care modifică metoda `drive()` pentru a limita viteza mașinii. `SpeedLimitDecorator` va lua obiectul original `Mașină` ca argument și va returna un nou obiect `Mașină` care are aceleași metode și atribute ca și `Mașina` original, dar cu funcționalitatea adăugată de limitare a vitezei.

Iată un exemplu de cum ați putea folosi un decorator în Python:
```
class Car:
def drive(self):
print(„Mașina conduce”)

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

def drive(self):
self.car.drive()
print(„Mașina este acum limitată la 50 mph”)

car = Car()
speed_limited_car = SpeedLimitDecorator(car)
speed_limited_car.drive() # printuri „Mașina conduce” și „Mașina este acum limitată la 50 mph”
```
În acest exemplu, clasa `SpeedLimitDecorator` preia un obiect `Mașină` ca argument în constructorul său și apoi modifică `drive( )` metoda obiectului `Mașină` original pentru a-i limita viteza. Clasa `SpeedLimitDecorator` are, de asemenea, propria sa metodă `drive()` care apelează metoda originală `drive()` a obiectului împachetat, dar cu limitarea adăugată de 50 mph.

Decoratorii sunt un instrument puternic pentru modificarea sau extinderea obiectelor existente. fără a modifica implementarea lor inițială. Ele pot fi folosite pentru a adăuga funcționalități noi, a modifica comportamentul sau chiar pentru a înlocui părți ale implementării unui obiect fără a afecta restul codului.

Knowway.org folosește cookie-uri pentru a vă oferi un serviciu mai bun. Folosind Knowway.org, sunteți de acord cu utilizarea cookie-urilor. Pentru informații detaliate, puteți consulta textul Politica privind cookie-urile. close-policy