python面向对象属性的使用 @property

先上定义

属性:将方法构造成一个属性,但是在代码中不会有实际提升

例子:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.__age = age

    @property
    def age(self):
        return self.__age

    @age.setter
    def age(self, a1):
        self.__age = a1
        print("age被修改了")

    @age.deleter
    def age(self):
        del self.__age

其中@property的作用就是将age方法看作__age属性,这样在调用是会更加方便,比如

p1 = Person('xxz', 18)
print(p1.age)

而@xx.setter和@xx.deleter的意思就是当该属性被修改和删除时自动会调用的方法.

猜你喜欢

转载自blog.csdn.net/qq_38115310/article/details/86567983