为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

动漫人物 2021-03-16 17:22:00
我的调用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 Falsemy_triangle = Triangle(60, 60, 60)(print my_triangle.number_of_sides)(print my_triangle.check_angles)
查看完整描述

3 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

首先,您缺少方法调用的括号。

接下来,您必须提供self类中任何方法的参数。

def check_angles(self):

另外,您也不想使用angle1angle2angle3-self.在使用它们之前必须先加上,然后才能在适当的范围内使用它们。

最后,是一种样式:可以返回self.angle1 + self.angle2 + self.angle3 == 180,因为它是布尔值。


查看完整回答
反对 回复 2021-03-23
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

您必须添加括号才能调用该函数。做。


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(self):

        if self.angle1 + self.angle2 + self.angle3 == 180:

            return True

        else:

            return False


my_triangle = Triangle(60, 60, 60)


print my_triangle.number_of_sides

print my_triangle.check_angles()

您的实现有一些小问题,因为您没有传入self函数,而是这样做self.angle1。此外,它可能是把有用number_of_sides到__init__。


查看完整回答
反对 回复 2021-03-23
?
慕慕森

TA贡献1856条经验 获得超17个赞

您在()方法末尾不见了。

输出正确:my_triangle.check_angles返回函数本身,因此您获得的文本就是该函数的描述。要实际打印结果,只需执行即可print my_triangle.check_angles()

PS。请当心浮点数。使用整数以外的值时,总和可能不完全相同180。这将是一个非常接近的数字。如果您需要除整数以外的任何东西,那么abs(result-180) < 1e-6(或要比较的其他一些小数)会更好。


查看完整回答
反对 回复 2021-03-23
  • 3 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信