property属性作用及设置方法

2019-05-16  本文已影响0人  越大大雨天

property属性介绍

property属性就是负责把一个方法当做属性进行使用,这样做可以简化代码使用。当修改值或者设置值的时候只需要像属性那样使用。

定义property属性有两种方式

  1. 装饰器方式
  2. 类属性方式

1. 使用装饰器方式

class Person(object):

    def __init__(self):
        self.__age = 0

    # 装饰器方式的property, 把age方法当做属性使用, 表示当获取属性时会执行下面修饰的方法
    @property
    def age(self):
        return self.__age

    # 把age方法当做属性使用, 表示当设置属性时会执行下面修饰的方法
    @age.setter
    def age(self, new_age):
        if new_age >= 150:
            print("输入错误")
        else:
            self.__age = new_age
            
# 创建person
p = Person()
print(p.age)
p.age = 100
print(p.age)
p.age = 1000

运行结果:

0
100
输入错误

快捷设置:在pycharm解释器中可以使用快捷方式props直接生成并同步修改。

2. 使用类属性方式

下面的方法应该更符合我们的设置习惯,在常规的定义函数方法后再增加一行property的设置即可:

class Person(object):

    def __init__(self):
        self.__age = 0

    def get_age(self):
        """当获取age属性的时候会执行该方法"""
        return self.__age

    def set_age(self, new_age):
        """当设置age属性的时候会执行该方法"""
        if new_age >= 150:
            print("输入错误")
        else:
            self.__age = new_age

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

# 创建person
p = Person()
print(p.age)
p.age = 100
print(p.age)
p.age = 1000

运行结果:

0
100
输入错误

property的参数说明:

上一篇下一篇

猜你喜欢

热点阅读