gpt4 book ai didi

python - 是否可以区分类函数 __add__ 中的运算符 += 和 +?

转载 作者:太空宇宙 更新时间:2023-11-04 07:05:30 25 4
gpt4 key购买 nike

我有一个类,其中包含一些数据。此类的两个对象的运算符 + 应该合并来自两个对象的数据并返回一个新对象。但是,如果在 += 运算符的情况下从添加的对象附加数据并返回 self 应该会好得多。这里有一些伪代码来演示我想要实现的目标。

class BiGData:
def __init__(self):
self.data=[]
def __add__(self,x):
if (this is just a +):
newData=BigData()
newData.data += self.data
newData.data += x.data
return newData
else: #(this is the += case)
self.data += x.data
return self

如果能够区分这两种使用__add__函数的情况,Python代码会更好阅读和理解!考虑一下:

x,y=BigData(),BigData()
z = x + y # z is a new object of the BigData class,
# which collects all data from both x and y
# but data in x and y are intacked
x += y # just append data from y to x
# data in x has been changed

最佳答案

不,这是不可能的。

但是如果你实现 __iadd__()然后 += 将使用它。

关于python - 是否可以区分类函数 __add__ 中的运算符 += 和 +?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50162258/

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