Python 创建表示二维点的类

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

实现一个表示二维点(即,具有x和y位置的点)的类实现以下方法: distanceFromOrigin():计算并返回到点2D(0,0)的距离

有人能告诉我为什么这样不行吗?
它返回一个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())