求大神帮忙解决下属性访问问题,提示没有定义名字
代码是这样的class Rectangle:def __init__(self,width=0,height=0):
self.width = width
self.height = height
def __setattr__(self, nanme, value):
if name == 'square':
self.width = value
self.height = value
else:
super().__setattr__(name,value)
def getArea(self):
return self.width * self.height
然后就报错了,根据视频教程写的啊,错误提示是这样的:
Traceback (most recent call last):
File "<pyshell#61>", line 1, in <module>
r1 = Rectangle(4,.5)
File "E:\Python\lianxi.py", line 78, in __init__
self.width = width
File "E:\Python\lianxi.py", line 82, in __setattr__
if name == 'square':
NameError: name 'name' is not defined 代码发全 suchocolate 发表于 2021-5-16 17:12
代码发全
这个就是全的代码 suchocolate 发表于 2021-5-16 17:12
代码发全
class Rectangle:
def __init__(self,width=0,height=0):
self.width = width
self.height = height
def __setattr__(self, nanme, value):
if name == 'square':
self.width = value
self.height = value
else:
super().__setattr__(name,value)
def getArea(self):
return self.width * self.height 我有一条狗 发表于 2021-5-16 17:16
class Rectangle:
def __init__(self,width=0,height=0):
self.width = width
这里只是类的定义,从你的报错信息来看,不仅仅有定义,还有调用的代码。
代码发全吧。 我有一条狗 发表于 2021-5-16 17:16
class Rectangle:
def __init__(self,width=0,height=0):
self.width = width
suchocolate 发表于 2021-5-16 17:20
这里只是类的定义,从你的报错信息来看,不仅仅有定义,还有调用的代码。
代码发全吧。
我觉得是他 __setattr__ 那里传入的变量叫 nanme
他调取的时候是 name{:10_250:} Daniel_Zhang 发表于 2021-5-16 17:21
我觉得是他 __setattr__ 那里传入的变量叫 nanme
他调取的时候是 name
呵呵 class Rectangle:
def __init__(self, width=0, height=0):
self.width = width
self.height = height
def __setattr__(self, name, value):# 这里name拼错了
if name == "square":
self.width = value
self.height = value
else:
super().__setattr__(name, value)
def getArea(self):
return self.width * self.height hrp 发表于 2021-5-16 17:50
感谢
页:
[1]