这是我第一次使用python中的类,我很快写了一个简单的类,让你按坐标移动火箭。我不知道如何制作一个名为let' distance" distance"这将返回两个不同实例(火箭)之间的距离。为了清楚起见,我知道如何计算距离,我不知道如何建立一个函数
class Rocket:
def __init__(self , start = (0, 0)):
self.start = start
self.x = self.start[0]
self.y = self.start[1]
if not self.crash():
self.start = (0,0)
print("You crashed!! Your position has been restarted to (0,0)")
def __repr__(self):
return "tbd"
def get_position(self):
return "Your curret posiiton is {}".format(self.start)
def move_side(self,x):
self.x += x
self.start = (self.x, self.y)
def move_up(self,y):
self.y += y
self.start = (self.x, self.y)
if not self.crash():
self.start = (0,0)
print("You crashed!! Your position has been restarted to (0,0)")
def move(self,x,y):
self.x += x
self.y += y
self.start = (self.x,self.y)
def land_rocket(self):
self.y = 0
self.start = (self.x,self.y)
def crash(self):
if self.y >= 0:
return True
return False
def distance(self,other):
return "???"
答案 0 :(得分:1)
您需要定义一个带有额外参数的类方法,该参数是您想要计算距离的对象。
要应用笛卡尔距离公式,请知道**
代表取幂,并且您可以导入math.sqrt
作为平方根。
import math
class Rocket:
...
def distance(self, other):
return math.sqrt((self.x - other.x) ** 2 + (self.y - other.y) ** 2)
上述代码仅要求other
拥有x
和y
个属性,它不需要是Rocket
个实例。