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)
本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/17350295.html