属性

---恢复内容开始---

二、getattr:定义当用户试图获取一个不存在得属性时的行为

getattribute:定义当该类的属性被访问时的行为

setattr:定义当一个属性被设置时的行为

delattr:定义当一个属性被删除时的行为

class D:
def __getattribute__(self,name):
print("getatribute")
return super().__getattribute__(name)
def __getattr__(self,name):
print("getattr")
def __setattr__(self,name,value):
print("setattr")
super().__setattr__(name,value)
def __delattr__(self,name):
print("delattr")
super().__delattr__(name)

三、矩形

class Rectangle:
def __init__(self, width=0, height=0):
self.width=width
self.height=height

def __setattr__(self, name, value):
if name == 'square':
self.width=value
self.height=value
else:
# self.name=value(陷入递归,死循环)

# self.__dict__[name]=value

(dict 以字典形式显示属性和类  :r1.__dict__{'width': 4, 'height': 5})

super().__setattr__(name, value)

def getArea(self):
return self.width * self.height

---恢复内容结束---

posted on 2018-10-12 22:44  X郭郭  阅读(98)  评论(0)    收藏  举报

导航