簡體   English   中英

Class 點 - Python

[英]Class point - Python

問題要求“編寫一個方法 add_point,將 object 點的 position 添加為 self 的 position 的參數”。 到目前為止,我的代碼是這樣的:

import math
epsilon = 1e-5

class Point(object):
    """A 2D point in the cartesian plane"""
    def __init__(self, x, y):
        """
        Construct a point object given the x and y coordinates

        Parameters:
            x (float): x coordinate in the 2D cartesian plane
            y (float): y coordinate in the 2D cartesian plane
        """
        self._x = x
        self._y = y

    def __repr__(self):
        return 'Point({}, {})'.format(self._x, self._y)

    def dist_to_point(self, other):
        changex = self._x - other._x
        changey = self._y - other._y
        return math.sqrt(changex**2 + changey**2)

    def is_near(self, other):
        changex = self._x - other._x
        changey = self._y - other._y
        distance =  math.sqrt(changex**2 + changey**2)
        if distance < epsilon:
            return True

    def add_point(self, other):
        new_x = self._x + other._x
        new_y = self._y + other._y
        new_point = new_x, new_y
        return new_point

但是,我收到此錯誤消息:

Input: pt1 = Point(1, 2)
--------- Test 10 ---------
Expected Output: pt2 = Point(3, 4)
Test Result: 'Point(1, 2)' != 'Point(4, 6)'
- Point(1, 2)
?       ^  ^
+ Point(4, 6)
?       ^  ^

所以我想知道我的代碼有什么問題?

您的解決方案返回一個新元組,根本不修改當前 object 的屬性。

相反,您需要根據說明實際更改對象的屬性,並且不需要返回任何內容(即,這是“就地”操作)。

def add_point(self, other):
    self._x += other._x
    self._y += other._y

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM