当涉及到我的类时,我试图定义操作符类型添加。点就是它看上去的样子,(x,y)。不过,我似乎无法让操作员工作,因为代码一直在打印<main.Point...>.我对这件事很陌生,有人能解释我做错了什么吗?谢谢。这是我的代码:
class Point:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y)
p1 = Point(3,4)
p2 = Point(5,6)
p3 = p1 + p2
print(p3)发布于 2014-02-06 20:28:17
您的add函数正在按预期工作。问题在于你的print。您得到了一个像<__main__.Point object at 0x027FA5B0>这样的难看的结果,因为您还没有告诉这个类您希望它如何显示自己。实现__str__或__repr__,使其显示一个很好的字符串。
class Point:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y)
def __repr__(self):
return "Point({}, {})".format(self.x, self.y)
p1 = Point(3,4)
p2 = Point(5,6)
p3 = p1 + p2
print(p3)结果:
Point(8, 10)https://stackoverflow.com/questions/21613118
复制相似问题