我是面向对象编程的新手。我试图创建一个可以找到两点之间距离的类。我以元组为坐标传递点。我写了这段代码,但显示错误。
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()
我知道可以使用元组拆解解决此问题,但是我想知道为什么我的代码无法正常工作?
答案 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()