property【属性访问器】

property 【在 Python 中,可以通过属性访问器(property)来实现通过属性访问方法的功能。属性访问器允许您定义一个方法,用于获取和设置对象的属性值】

使用property相当于把这个函数作为一个属性而不是方法,调用的时候获得的是一个只读的属性

一般用于外部访问内部参数,并保护内部参数不被外部更改(只读)

既然有只读的方法,当然也有对应的setter方法

setter的前面必须要先property

得先有属性才能做setter

这种的另一个好处是写得方便,直接用赋值的就行,然后在处理数据的时候对其进行验证处理,比方说看它是不是符合你这个变量因有的格式,是否为空,是否纯数字之类的

from copy import deepcopy

class TempDemo:
    def __init__(self):
        self.__aaa = 0
        self.__bbb = 1

    @property
    def aaa(self):
        return self.__aaa

    @aaa.setter
    def aaa(self, value):
        value_temp = deepcopy(value)
        """对传入的数据进行验证处理"""
        self.__aaa = value_temp

    @property
    def bbb(self):
        return self.__bbb

    @bbb.setter
    def bbb(self, value):
        if isinstance(value, int):
            value_temp = deepcopy(value)
            """对传入的数据进行验证处理"""
            self.__bbb = value_temp
        else:
            raise ValueError("不是整数")


if __name__ == '__main__':
    temp = TempDemo()
    print(temp.aaa)
    print(temp.bbb)
    temp.aaa = 5
    temp.bbb = 9
    print("aaa", temp.aaa)
    print("bbb", temp.bbb)
posted @ 2023-04-24 17:32  __username  阅读(91)  评论(0编辑  收藏  举报

本文作者:DIVMonster

本文链接:https://www.cnblogs.com/guangzan/p/12886111.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。