gpt4 book ai didi

python - 自定义添加方法在字符串插值期间失败

转载 作者:太空狗 更新时间:2023-10-29 20:38:15 27 4
gpt4 key购买 nike

#it's python 3.2.3
class point:
def __init__(self, x, y):
self.x = x
self.y = y

def __add__(self, point):
self.x += point.x
self.y += point.y
return self

def __repr__(self):
return 'point(%s, %s)' % (self.x, self.y)

class Test:
def __init__(self):
self.test1 = [point(0, i) for i in range(-1, -5, -1)]
self.test2 = [point(i, 0) for i in range(-1, -5, -1)]

print('%s\n+\n%s\n=\n%s' % (self.test1[0], self.test2[0], self.test1[0] + self.test2[0]))

test = Test()
input()

这个程序的输出是

point(-1, -1)
+
point(-1, 0)
=
point(-1, -1)

但应该是

point(-1, -1)
+
point(-1, 0)
=
point(-2, -1)

但如果我这样做

print(point(-1, -1) + point(-1, 0))

完美运行

我想知道为什么,以及如何解决这个问题

附注对不起,如果我的英语不好:)

最佳答案

您的 __add__ 函数将左侧参数修改为 +。例如:

>>> x = point(0, 0)

>>> x + point(1, 1)
point(1, 1)

>>> x
point(1, 1)

你应该把 __add__ 改成这样

def __add__(self, oth):
return point(self.x + oth.x, self.y + oth.y)

关于python - 自定义添加方法在字符串插值期间失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10722859/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com