Python装饰器property的使用

  1. property的装饰器方式使用
class Person(object):
    def __init__(self):
        self.__age = 0

    @property # 把age方法当属性使用,获取age属性时会调用下面的方法
    def age(self):
        print('获取年龄属性')
        return self.__age

    @age.setter # 把age方法当属性使用,设置age时调用下面的方法
    def age(self,new_age):
        print('设置年龄了')
        self.__age = new_age


chris = Person()
print(chris.age)
chris.age = 120
print(chris.age)

  1. property的类属性方式使用
class Person(object):
    def __init__(self):
        self.__age = 0

    def get_age(self):
        print('获取年龄属性')
        return self.__age

    def set_age(self,new_age):
        print('设置年龄了')
        self.__age = new_age

    # 类属性的property方式
    age = property(get_age,set_age)

chris = Person()
print(chris.age)
chris.age = 120
print(chris.age)

property将方法改为属性使用,利于私有属性的设置和显示,不用频繁的使用类的函数

posted @ 2021-03-09 19:34  code-G  阅读(60)  评论(0编辑  收藏  举报