class MyClass:
def __init__(self):
self._private_attribute = None
@property
def public_attribute(self):
return self._private_attribute
@public_attribute.setter
# 该属性的写入方法
# 控制该属性的数据验证
def public_attribute(self, value):
# 检测该数据是否为整数 如果不是整数就raise
if not isinstance(value, int):
raise ValueError("Value must be an integer.")
self._private_attribute = value
@property是一个内置的装饰器,它允许我们将一个方法当作一个属性来访问,而不需要显式地调用它。这被称为“属性方法”或者“getter”。
obj = MyClass()
obj.public_attribute = 10 # 设置属性,会调用setter
print(obj.public_attribute) # 访问属性,会调用getter