gpt4 book ai didi

python 创建任意类型的空对象?

转载 作者:行者123 更新时间:2023-11-30 23:10:14 30 4
gpt4 key购买 nike

对于列表等类型,我可以轻松创建一个空列表来使此构造起作用:

 s = []
s+= [1,2,3] # result s assigned [1,2,3]

在这样的结构中显然很有用:

 s=[]
for v in (list1,list2,list3..):
if condition : s+=v

现在我正在使用用户定义的类型,该类型在模块中定义,我无法读取或更改..我必须这样做:

 s=0
for v in (typefoo1,typefoo2,..):
if condition :
if s==0 :
s=v
else:
s+=v

这可行,但很丑陋,而且经常发生,非常烦人。那么..有没有办法创建一个空对象,使得 += 运算符的行为就像常规赋值= 一样,而不管右侧的类型如何?

编辑:我试图故意保持问题的通用性,但为了完整性,所讨论的类型是 Abaqus 几何序列。

最佳答案

is there a way to create an empty object such that the += operator would behave simply like a regular assignment = regardless of the type on the r.h.s?

当然。只需编写一个类并定义您的 __add__ 方法即可返回未修改的 RHS。

class DummyItem:
def __add__(self, other):
return other

s = DummyItem()
s += 23
print s

结果:

23

关于python 创建任意类型的空对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30782867/

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