我正在尝试自学 Python,并且大部分时间都做得很好。但是,当我尝试运行代码时
class Equilateral(object):
angle = 60
def __init__(self):
self.angle1, self.angle2, self.angle3 = angle
tri = Equilateral()
我收到以下错误:
Traceback (most recent call last):
File "python", line 15, in <module>
File "python", line 13, in __init__
NameError: global name 'angle' is not defined
可能有一个非常简单的答案,但为什么会这样?
最佳答案
self.angle1, self.angle2, self.angle3 = angle
应该是
self.angle1 = self.angle2 = self.angle3 = self.angle
只是说 angle
让 python 寻找一个不存在的全局 angle
变量。您必须通过 self
变量引用它,或者由于它是类级别变量,您也可以说 Equilateral.angle
其他问题是您用逗号分隔的 self.angleN
。当您以这种方式分配时,python 将在等号两边寻找相同数量的部分。例如:
a, b, c = 1, 2, 3
关于Python 错误 : Global Name not Defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16258199/