Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在课堂上对自我是如何运作的困惑_Python - Fatal编程技术网

Python 在课堂上对自我是如何运作的困惑

Python 在课堂上对自我是如何运作的困惑,python,Python,为什么这个代码不起作用 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 = an

为什么这个代码不起作用

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= angle 1,为什么我不能只使用较短的版本?

< p>所以解释一下,请考虑下面的内容。当你得到函数<代码>三角形时,检查角度< /代码>,考虑在那一点上定义了什么。您拥有定义了角度1、角度2和角度3的
self
对象(即定义了
self.angle1
self.angle2
self.angle3


但是,
angle1
本身不是一个已知变量,因为它没有传递到函数中(就像在
self.\uuuuu init\uuuu
函数中一样)。因此,如果您请求
angle1
,则未定义它,并引发错误。清楚吗?

就是这样:
angle1
是一个变量,其范围是构造函数,而
self.angle1
self
的属性。它们不是一回事。