TypeError:'int'对象不可调用-1

时间:2019-05-27 07:17:11

标签: python-3.x

我是面向对象编程的新手。我试图创建一个可以找到两点之间距离的类。我以元组为坐标传递点。我写了这段代码,但显示错误。

class Line:
    def __init__(self,coor1,coor2):
        self.coor1= coor1
        self.coor2= coor2
    def distance(self):
        print(((self.coor1[0]-self.coor2[0])**2(self.coor1[1]-self.coor2[1])**2)**0.5)
    def slope (self):
        print((self.coor2[1]-self.coor1[1])/(self.coor2[0]-self.coor1[0]))
coordinate1 = (3,2)
coordinate2 = (8,10)

li = Line(coordinate1,coordinate2)
li.distance()

我知道可以使用元组拆解解决此问题,但是我想知道为什么我的代码无法正常工作?

1 个答案:

答案 0 :(得分:1)

在函数distance中,您编写了2(self.coor1[1]-self.coor2[1]),它要求python执行int类的object(2)的__call__方法。您只需在2之后添加另一个加/减符号。

在该示例中,我假设您要添加。

class Line:
    def __init__(self,coor1,coor2):
        self.coor1= coor1
        self.coor2= coor2
    def distance(self):
        print(((self.coor1[0]-self.coor2[0])**2+(self.coor1[1]-self.coor2[1])**2)**0.5)
    def slope (self):
        print((self.coor2[1]-self.coor1[1])/(self.coor2[0]-self.coor1[0]))
coordinate1 = (3,2)
coordinate2 = (8,10)

li = Line(coordinate1,coordinate2)
li.distance()