Python中property简单介绍

1、property定义

一种用起来像是使用实例属性一样的特殊属性,可以对应于某个方法,通过使用property属性,能够简化调用者在获取数据的流程。

property属性的定义和调用要注意以下几点:
定义时,在实例方法的基础上添加 @property 装饰器;并且仅有一个self参数
调用时,无需括号,加上就错了。

    class Foo(object):
        def __init__(self):
            self.name = "laowang"
    
        @property
        def man(self):
            new_name = self.name
            return new_name

    f = Foo()
   a = f.man
    print(a)   # f运行结构是   laowang
2、实现property属性的两种方式
2.1装饰器

经典类中的属性只有一种访问方式,其对应被 @property 修饰的方法,即只能读取。(Python2中)

新式类中的属性有三种访问方式,并分别对应了三个被@property、@方法名.setter、@方法名.deleter修饰的方法,分别对应读取、修改和删除属性的方法。(Python3中)

2.2类属性

当使用类属性的方式创建property属性时,经典类和新式类无区别
property()方法有四个参数
第一个参数是方法名,调用 对象.属性 时自动触发执行方法
第二个参数是方法名,调用 对象.属性 = XXX 时自动触发执行方法
第三个参数是方法名,调用 del 对象.属性 时自动触发执行方法
第四个参数是字符串,调用 对象.属性.doc ,此参数是该属性的描述信息

class Foo:
    def get_bar(self):
        return "laowang"
        
    BAR = property(get_bar)

f = Foo()
print(f.get_bar())    # 运行结果是  laowang
print(f.BAR)        ## 运行结果是  laowang

猜你喜欢

转载自blog.csdn.net/gxz987/article/details/89437310