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
如何将转换运算符重载到字符串中,以便列表调用 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