


了解 Python 中的装饰器
装饰器是一种设计模式,允许您修改或扩展对象的行为,而无需更改对象的原始实现。换句话说,装饰器允许您向现有对象添加新功能,而无需修改其核心代码。装饰器通常是一个函数,它将对象作为参数并返回“包装”原始对象的新对象。新对象具有与原始对象相同的方法和属性,但它还具有装饰器提供的一些附加功能或行为。 例如,假设您有一个名为“Car”的类,它有一个名为“drive”的方法()` 使汽车移动。您可以创建一个名为“SpeedLimitDecorator”的装饰器,它修改“drive()”方法来限制汽车的速度。 `SpeedLimitDecorator` 将以原始 `Car` 对象作为参数,并返回一个新的 `Car` 对象,该对象具有与原始 `Car` 相同的方法和属性,但增加了限制速度的功能。
Here 是一个如何在 Python 中使用装饰器的示例:
```
class Car:
defdrive(self):
print("The car is moving")
class SpeedLimitDecorator:
def __init__(self, car):
self. car = car
defdrive(self):
self.car.drive()
print("汽车现在限制为 50 英里/小时")
car = Car()
speed_limited_car = SpeedLimitDecorator(car)
speed_limited_car.drive() # 打印“汽车正在行驶”和“汽车现在限制为 50 英里/小时”。在这个示例中,`SpeedLimitDecorator` 类在其构造函数中将 `Car` 对象作为参数,然后修改 `drive( )` 原始 `Car` 对象的方法来限制其速度。 `SpeedLimitDecorator` 类也有自己的 `drive()` 方法,该方法调用包装对象的原始 `drive()` 方法,但增加了 50 mph 的限制。
Decorators 是修改或扩展现有对象的强大工具而不改变他们原来的实现。它们可用于添加新功能、修改行为,甚至替换对象的部分实现,而不会影响其余代码。



