为什么这段代码不起作用?
class Triangle(object):
def __init__(self, angle1, angle2, angle3):
self.angle1 = angle1
self.angle2 = angle2
self.angle3 = angle3
number_of_sides = 3
def check_angles(self):
sum_of_angles = angle1 + angle2 + angle3 # PLS LOOK AT THIS LINE
if sum_of_angles == 180:
return True
else:
return False
但是这样做了?
class Triangle(object):
def __init__(self, angle1, angle2, angle3):
self.angle1 = angle1
self.angle2 = angle2
self.angle3 = angle3
number_of_sides = 3
def check_angles(self):
sum_of_angles = self.angle1 + self.angle2 + self.angle3 # LOOK HERE AGAIN
if sum_of_angles == 180:
return True
else:
return False
如果self.angle1 = angle1,为什么我不能只使用较短的版本?
答案 0 :(得分:0)
为了解释这一点,请考虑以下内容。当您到达函数Triangle.check_angles
时,请考虑在该点定义的内容。您拥有self
对象,其中定义了angle1,angle2和angle3(即您已定义self.angle1
,self.angle2
和self.angle3
。
但是,angle1
本身不是已知变量,因为它不会传递给函数(就像在self.__init__
函数中一样)。因此,如果您要求angle1
,则它未定义,并引发错误。那是清楚的吗?