|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
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.__setattr__(name,value)
def getArea(self):
return self.width*self.height
以上代码出自小甲鱼《零基础入门学习Python》第45讲 。
setattr魔法方法只要发生赋值就会被调用,容易陷入死循环。
当name=='square'条件成立时候,self.width=value发生赋值操作,在此处应该同样会触发setattr魔法方法,从而导致进入死循环出错。
小白表示无法理解,为何该类能正常实例化,不会报错??求大神指点下
|
|