菜鸟IT的博客 >> Python
class类 增删改 | def __setattr__(self, key, value): | def __getattr__(self, item): | def __delattr__(self, item):
class FangKuai:
def __init__(self):
self.width=0
self.height=0
self.left=0
self.top=0
def __setattr__(self, key, value):
print("设置属性被触发.")
if(key=="size"):
self.width,self.height=value
elif(key=="position"):
self.left,self.top=value
else:
# 万一还有其他属性值就存在字典里。
self.__dict__[key]=value
def __getattr__(self, item):
print("获取属性被触发.")
if(item=="size"):
return self.width,self.height
elif(item=="position"):
return self.left,self.top
def __delattr__(self, item):
print("删除属性被触发.")
if(item=="size"):
self.width=0
self.height=0
elif(item=="position"):
self.left=0
self.top=0
fk=FangKuai()
fk.size=(100,200)
fk.position=(50,60)
print("删除尺寸")
del fk.size
print("查看大小:",fk.size)
print("查看宽高:",fk.position)
————————
输出结果:
设置属性被触发.
设置属性被触发.
设置属性被触发.
设置属性被触发.
设置属性被触发.
设置属性被触发.
设置属性被触发.
设置属性被触发.
设置属性被触发.
设置属性被触发.
删除尺寸
删除属性被触发.
设置属性被触发.
设置属性被触发.
获取属性被触发.
查看大小: (0, 0)
获取属性被触发.
查看宽高: (50, 60)
进程已结束,退出代码0
菜鸟IT博客[2022.01.06-17:18] 访问:291