'''
只读属性
'''
# 方式一(屏蔽读和写,然后公开写的方法)
class Person:
def __init__(self):
self.__age=18
@property #主要作用:可以使用属性的方式,来使用这个方法
def age(self):
return self.__age
p1=Person()
print(p1.age)
# 方式二()
class Person:
# 当我们通过"实例.属性=值",给一个实例增加一个属性或修改一下属性的值
#都会调用这个方法
def __setattr__(self, key, value):
print(key,value)
# 1.判定“key”是否是我们要设置的只读属性名称
if key=="age"and key in self.__dict__.keys():
print("这个属性是只读属性,不能设置数据")
# 2.如果不是只读属性的名称,才给他添加到实例里面去
else:
# self.key=value(会陷入死循环)
self.__dict__[key]=value
p1=Person()
p1.age=18
print(p1.age)
p1.age=990
print(p1.age)
p1.name="zs"
print(p1.__dict__)
Python_实现只读属性
最新推荐文章于 2023-10-31 10:11:20 发布