我用了坡度和距离公式。但我认为索引是错误的方法,或者是吗?
class Line():
def __init__(self,coord1,coord2):
self.coord1 = coord1
self.coord2 = coord2
def distance(self):
return ((coord2[0]-coord1[0])**2 + (coord2[1]-coord1[1])**2)**0.5
def slope(self):
return (coord2[1] - coord1[1])/(coord2[0]-coord1[0])发布于 2021-12-06 15:16:17
要访问类特定的变量,需要使用self.#varibale name,因此您的函数应该如下所示:
def distance(self):
return ((self.coord2[0]-self.coord1[0])**2 + (self.coord2[1]-self.coord1[1])**2)**0.5
def slope(self):
return (self.coord2[1] - self.coord1[1])/(self.coord2[0]-self.coord1[0])发布于 2021-12-06 15:18:31
假设coord是一个元组,我更愿意先对它们进行解压缩以提高可读性:
def slope(self):
x1,y1 = self.coord1
x2,y2 = self.coord2
return (y2 - y1)/(x2-x1)发布于 2021-12-06 15:19:39
索引没什么问题。如果为组件提供更多的描述性名称,您可能会发现它更具可读性。例如,
def distance(self):
c1x = self.coord1[0]
c1y = self.coord1[1]
c2x = self.coord2[0]
c2y = self.coord2[1]
return ((c2x - c1x)**2 + (c2y - c1y)**2)**0.5你可以用元组解压使它不那么冗长:
def distance(self):
c1x, c1y = self.coord1
c2x, c2y = self.coord2
return ((c2x - c1x)**2 + (c2y - c1y)**2)**0.5更不用说在复杂的平面上工作了:
def distance(self):
return abs(complex(**self.coord2) - complex(**self.coord1))(对于slope,复数技巧涉及到用cmath.polar将两者之间的差异转换为极坐标。)
https://stackoverflow.com/questions/70247669
复制相似问题