我正在尝试自学Python,并且在大多数情况下表现良好.但是,当我尝试运行代码时
class Equilateral(object):
angle = 60
def __init__(self):
self.angle1, self.angle2, self.angle3 = angle
tri = Equilateral()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Traceback (most recent call last):
File "python", line 15, in <module>
File "python", line 13, in __init__
NameError: global name 'angle' is not defined
Run Code Online (Sandbox Code Playgroud)
可能有一个非常简单的答案,但为什么会这样呢?
self.angle1, self.angle2, self.angle3 = angle
Run Code Online (Sandbox Code Playgroud)
应该
self.angle1 = self.angle2 = self.angle3 = self.angle
Run Code Online (Sandbox Code Playgroud)
只是说angle让python寻找一个angle不存在的全局变量.您必须通过self变量引用它,或者因为它是类级变量,您也可以说Equilateral.angle
其他问题是你的逗号分隔self.angleN.当你以这种方式分配时,python将在等号的两边寻找相同数量的部分.例如:
a, b, c = 1, 2, 3
Run Code Online (Sandbox Code Playgroud)