初学者python:我对check_angles的调用有什么问题?

我的调用check_angles返回以下内容,而不是True:


<bound method Triangle.check_angles of <Triangle object at 0x7fb209a66b50>>

这是代码:


class Triangle(object):

    number_of_sides = 3

    def __init__(self, angle1, angle2, angle3):

        self.angle1 = angle1

        self.angle2 = angle2

        self.angle3 = angle3

    def check_angles():

        if angle1 + angle2 + angle3 == 180:

            return True

        else:

            return False


my_triangle = Triangle(60, 60, 60)


(print my_triangle.number_of_sides)

(print my_triangle.check_angles)


动漫人物
浏览 205回答 3
3回答

12345678_0001

首先,您缺少方法调用的括号。接下来,您必须提供self类中任何方法的参数。def&nbsp;check_angles(self):另外,您也不想使用angle1,angle2或angle3-self.在使用它们之前必须先加上,然后才能在适当的范围内使用它们。最后,是一种样式:可以返回self.angle1 + self.angle2 + self.angle3 == 180,因为它是布尔值。

拉莫斯之舞

您必须添加括号才能调用该函数。做。class Triangle(object):&nbsp; &nbsp; number_of_sides = 3&nbsp; &nbsp; def __init__(self, angle1, angle2, angle3):&nbsp; &nbsp; &nbsp; &nbsp; self.angle1 = angle1&nbsp; &nbsp; &nbsp; &nbsp; self.angle2 = angle2&nbsp; &nbsp; &nbsp; &nbsp; self.angle3 = angle3&nbsp; &nbsp; def check_angles(self):&nbsp; &nbsp; &nbsp; &nbsp; if self.angle1 + self.angle2 + self.angle3 == 180:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return True&nbsp; &nbsp; &nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return Falsemy_triangle = Triangle(60, 60, 60)print my_triangle.number_of_sidesprint my_triangle.check_angles()您的实现有一些小问题,因为您没有传入self函数,而是这样做self.angle1。此外,它可能是把有用number_of_sides到__init__。

慕慕森

您在()方法末尾不见了。输出正确:my_triangle.check_angles返回函数本身,因此您获得的文本就是该函数的描述。要实际打印结果,只需执行即可print my_triangle.check_angles()。PS。请当心浮点数。使用整数以外的值时,总和可能不完全相同180。这将是一个非常接近的数字。如果您需要除整数以外的任何东西,那么abs(result-180) < 1e-6(或要比较的其他一些小数)会更好。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python