Python 创建表示二维点的类
实现一个表示二维点(即,具有x和y位置的点)的类实现以下方法: distanceFromOrigin():计算并返回到点2D(0,0)的距离 有人能告诉我为什么这样不行吗?Python 创建表示二维点的类,python,class,2d,points,Python,Class,2d,Points,实现一个表示二维点(即,具有x和y位置的点)的类实现以下方法: distanceFromOrigin():计算并返回到点2D(0,0)的距离 有人能告诉我为什么这样不行吗? 它返回一个TypeError:object()不接受任何参数您需要为类实现\uuu init\uuu()方法,以便它可以在实例化时接受参数。你真的应该看看关于创建和使用类的基本教程,因为这并不能解决你所有的问题。使用dist有什么用呢?只需使用返回math.sqrt((self.x2-self.x1)**2+(self.y2
它返回一个TypeError:object()不接受任何参数您需要为类实现
\uuu init\uuu()
方法,以便它可以在实例化时接受参数。你真的应该看看关于创建和使用类的基本教程,因为这并不能解决你所有的问题。使用dist
有什么用呢?只需使用返回math.sqrt((self.x2-self.x1)**2+(self.y2-self.y1)**2)
让self
作为下一步该做什么的提示从原点出发的距离是从(0,0)
即你的(x1,y1)
将是(0,0),距离将是dist=math.sqrt(x2**2+y2**2)
,你在函数中给出(x2,y2)作为参数,p=Point2D()打印(p.disctanceFromOrigin(3,4))
函数应该是disctanceFromOrigin(self,x2,y2)
。如果你想做p=Point2D(3,4)
您将需要\uuuu init\uuuuu()
@Shijith aah-okey获得它,也许您可以参考类turtle的源代码。Vec2D@Shijith已经给我指明了正确的方向,但还是要谢谢@Ben!!!
import math
class Point2D:
def __init__(self, x, y):
self.x = x
self.y = y
def disctanceFromOrigin(self):
origin = Point2D(0, 0)
dist = self.distanceFromPoint(self, origin)
return dist
def distanceFromPoint(self, point):
return math.sqrt((self.x - point.x)**2 + (self.y - point.y)**2
p = Point2D(3,4)
print(p.distanceFromOrigin())
import math
class Point2D:
def __init__(self, x, y):
self.x = x
self.y = y
def disctanceFromOrigin(self):
origin = Point2D(0, 0)
dist = self.distanceFromPoint(self, origin)
return dist
def distanceFromPoint(self, point):
return math.sqrt((self.x - point.x)**2 + (self.y - point.y)**2
p = Point2D(3,4)
print(p.distanceFromOrigin())