python 转换运算符到字符串 - 重载

python conversion operator to string - overloading

如何将转换运算符重载到字符串中,以便列表调用 returns 矢量坐标。

清单:

w = Vector(5,6)
print(w)

向量class:

class向量:

def __init__(self, x, y):
    self.x, self.y = x, y

    def __add__(self, other):
        return Vector(self.x + other.x, self.y + other.y)

    def __sub__(self, other):
        return Vector(self.x - other.x, self.y - other.y)

    def __mul__(self, scalar):
        if isinstance(scalar, int) or isinstance(scalar, float):
            return Vector(self.x * scalar, self.y * scalar)

    def __rmul__(self, scalar):
        return self.__mul__(scalar)

感谢您的帮助

您需要更具体一点,Vector 是您创建的 class 吗? 如果是这样,您需要添加 __str__ 打印用法的方法。

您可以在 what-is-the-str-method-in-python 中阅读更多相关信息。

示例:

>>> class Vector:
        def __init__(self, x, y):
            self.x, self.y = x, y
        def __str__(self):
            return f"{self.x}, {self.y}"

>>> v = Vector(5,6)
>>> print(v)
5, 6