在《Python中通过property设置类属性的访问》中提到了可以通过property()来设置访问类属性时默认调用的方法。除了使用property()外,还可以使用修饰符来达到以上目的。
1 通过修饰符设置获取属性的方法
可以通过@property修饰符设置获取属性时默认调用的方法,代码如下所示。
class A:
def __init__(self, name):
self.name = name
@property
def my_name(self):
return self.name
其中,类A的方法my_name被@property修饰,当获取类属性值时,默认调用该方法,代码如下所示。
a1 = A('yang')
print(a1.my_name)
此时,打印的信息为“yang”。
2 通过修饰符设置指定属性值的方法
可以通过@XXX.setter修饰符设置指定属性值时默认调用的方法,其中XXX与指定的方法同名,在类A的内部,添加如下代码。
@my_name.setter
def my_name(self, name):
self.name = name
此时类A的方法my_name()被@my_name.setter修饰,当指定类属性值时,默认调用该方法,代码如下所示。
a1.my_name = 'li'
print(a1.my_name)
此时,打印的信息为“li”。
需要注意的是,@property和@XXX.setter修饰的方法名要相同。