在声明类属性时触发setter可以通过使用属性装饰器来实现。属性装饰器是一种特殊的函数,用于修改或扩展类的属性。当属性被定义时,属性装饰器会被调用,并且可以在其中定义setter方法。
下面是一个示例代码,演示如何在声明类属性时触发setter:
class MyClass:
def __init__(self):
self._my_property = None
@property
def my_property(self):
return self._my_property
@my_property.setter
def my_property(self, value):
# 在setter中可以添加自定义逻辑
print("Setter called!")
self._my_property = value
# 使用示例
obj = MyClass()
obj.my_property = 10 # 调用setter方法
print(obj.my_property) # 输出: 10
在上述代码中,@property
装饰器用于定义my_property
属性的getter方法,@my_property.setter
装饰器用于定义setter方法。当给my_property
赋值时,会自动调用setter方法,并触发自定义的逻辑。
这种方式可以让我们在属性被设置时执行额外的操作,例如验证输入值、更新相关属性或执行其他自定义逻辑。
领取专属 10元无门槛券
手把手带您无忧上云