Python 3D中两点之间的距离-类、方法和对象、类型错误

Python 3D中两点之间的距离-类、方法和对象、类型错误,python,python-3.x,class,methods,Python,Python 3.x,Class,Methods,我正在尝试使用类和方法打印3D中两点之间的距离。我得到一个TypeError:distance()接受1个位置参数,但给出了2个。 这是我的代码,k2和k3是两点的坐标 import math class Point: def __init__(self, x, y, z): self.x = x self.y = y self.z = z def __str__(self): return "point : ({:d}, {:d}, {:d})".format(self.x,s

我正在尝试使用类和方法打印3D中两点之间的距离。我得到一个
TypeError:distance()接受1个位置参数,但给出了2个。

这是我的代码,
k2
k3
是两点的坐标

import math
class Point:
def __init__(self, x, y, z):
  self.x = x
  self.y = y
  self.z = z
def __str__(self):
  return "point : ({:d}, {:d}, {:d})".format(self.x,self.y,self.z)
def distance(self):
  distance = sqrt( (x1-x2)**2 + (y1-y2)**2 + (z1 -z2)**2 )
  return distance
k2 = Point(5, 7, 8)
k3 = Point(-3, -2, 5)
print(k3.distance(k2))
也试过

print(distance(k2, k3))
我得到一个
name错误:未定义名称“距离”

如果我遗漏了什么,请提出建议

谢谢大家!!
在Mac终端上使用python 3.7.4

其中do
x1
/
x2
,。。。来自
距离
方法?看来你的代码想凭空变戏法

此外,该方法被声明为
def distance(self)
,因此它显然只有一个参数(对对象本身的引用),不允许向其传递任何其他参数

真正需要的是
distance
方法的一个参数,在该参数中可以传递引用对象以计算距离。您需要使用参考对象和自身对象的坐标来计算距离:

def distance(self, other):
   d = sqrt( (self.x - other.x)**2 + ...
这个例子故意不完整,但你应该明白。
您可能真的很想了解如何使用Python进行面向对象编程(以及通常如何进行面向对象编程)

谢谢@umlaute,我能够执行代码。如果它解决了您的问题,您应该接受答案(如果有多个答案,这对您帮助最大)。这是一个重要的内务管理,因为它可以帮助人们集中精力解决未回答的问题,而不是花时间处理不需要更多关注的问题。请提供完整的错误消息,以及一个详细的说明。代码的格式似乎已损坏。