Python中通过修饰符设置类属性的访问

《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修饰的方法名要相同。

猜你喜欢

转载自blog.csdn.net/hou09tian/article/details/132688243