mobile theme mode icon
theme mode light icon theme mode dark icon
Random Question 무작위의
speech play
speech pause
speech stop

Python의 데코레이터 이해

데코레이터는 객체의 원래 구현을 변경하지 않고도 객체의 동작을 수정하거나 확장할 수 있는 디자인 패턴입니다. 즉, 데코레이터를 사용하면 핵심 코드를 수정하지 않고도 기존 객체에 새 기능을 추가할 수 있습니다. 데코레이터는 일반적으로 객체를 인수로 사용하고 원래 객체를 "래핑"하는 새 객체를 반환하는 함수입니다. 새 개체는 원래 개체와 동일한 메서드와 속성을 가지지만 데코레이터에서 제공하는 몇 가지 추가 기능이나 동작도 갖습니다. 예를 들어, `drive라는 메서드가 있는 `Car`라는 클래스가 있다고 가정해 보겠습니다. ()`를 누르면 자동차가 움직인다. 자동차의 속도를 제한하기 위해 `drive()` 메서드를 수정하는 `SpeedLimitDecorator`라는 데코레이터를 만들 수 있습니다. `SpeedLimitDecorator`는 원래 `Car` 객체를 인수로 취하고 원래 `Car`와 동일한 메서드와 속성을 갖지만 속도를 제한하는 기능이 추가된 새로운 `Car` 객체를 반환합니다. Python에서 데코레이터를 사용하는 방법의 예:
```
class Car:
defdrive(self):
print("The car is Driving")

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

defdrive(self):
self.car.drive()
print("자동차는 이제 50mph로 제한됩니다.")

car = Car()
speed_limited_car = SpeedLimitDecorator(car)
speed_limited_car.drive() # 인쇄 "자동차가 운전 중입니다." 및 "자동차는 이제 시속 50마일로 제한되어 있습니다."
```
이 예에서 `SpeedLimitDecorator` 클래스는 생성자의 인수로 `Car` 객체를 취한 다음 `drive( )` 메서드를 사용하여 속도를 제한합니다. `SpeedLimitDecorator` 클래스에는 래핑된 개체의 원래 `drive()` 메서드를 호출하는 자체 `drive()` 메서드도 있지만 50mph의 제한이 추가되었습니다.

Decorators는 기존 개체를 수정하거나 확장하기 위한 강력한 도구입니다. 원래 구현을 변경하지 않고. 코드의 나머지 부분에 영향을 주지 않고 새로운 기능을 추가하거나 동작을 수정하거나 개체 구현의 일부를 바꾸는 데 사용할 수 있습니다.

Knowway.org는 더 나은 서비스를 제공하기 위해 쿠키를 사용합니다. Knowway.org를 사용하면 쿠키 사용에 동의하는 것입니다. 자세한 내용은 쿠키 정책 텍스트를 참조하세요. close-policy