代码之家  ›  专栏  ›  技术社区  ›  kang

你知道如何在python中输入来自同一类的对象吗?

  •  0
  • kang  · 技术社区  · 2 年前

    我是python初学者。

    我必须定义一个方法distanceFromOther(),该方法将不同的点作为一个因子,并返回自身与另一点之间的距离。

    类点用于将二维平面中的点(x,y)视为对象。

    这是我写的代码。

    import math
    
    class Point:
    
            def __init__(self, x=0, y=0):
                self._x= x
                self._y= y
    
    
            def dFO(self, a, b):
                self.a = a
                self.b = b
        
                otResult = math.sqrt(math.pow(self._x-self.a,2)+math.pow(self._y-self.b,2))
                return otResult
    
    
            def __str__(self):
                return f"({self._x}, {self._y})"
    

    我制作了两个物体a和b。

    a = Point(1,1)
    b = Point(2,3)
    

    我必须用方法dFO()算出a和b之间的距离。 我应该输入'b'作为因子,但我用这个方法来输入点x,y的值。我不知道如何输入我作为因子的对象'b'。

    a.dFO(2,3)
    
    
    a.dFO(b)
    

    前者是我做的,后者是我想做的。

    如果你知道怎么做,请帮帮我!

    1 回复  |  直到 2 年前
        1
  •  0
  •   quamrana Ryuzaki L    2 年前

    你只需要访问 _x _y 属性:

    import math
    
    class Point:
    
            def __init__(self, x=0, y=0):
                self._x= x
                self._y= y
    
            def distanceFromOther(self, b):
                x = b._x
                y = b._y
        
                otResult = math.sqrt(math.pow(self._x-x,2) + math.pow(self._y-x,2))
                return otResult
    
            def __str__(self):
                return f"({self._x}, {self._y})"
    

    此外,您不需要将方法的参数转换为该对象的属性。