gpt4 book ai didi

python - Python 中是反射增广加法 (__iadd__) 吗?

转载 作者:行者123 更新时间:2023-12-01 08:01:26 25 4
gpt4 key购买 nike

对于“更好”的更简单的代码,我想知道是否可以执行保留/反射的增强加法分配。

[我已经检查了 Stack Overflow 上是否有类似的问题,但找不到任何问题。因此,如果这是重复我的道歉,请链接答案。]

例如,使用字符串常规赋值给出:

In[1]:  s = 'foo'
In[2]: s += 'bar'
In[3]: print(s)

Out[1]: foobar

但是有没有办法通过反射顺序来做到这一点,而不需要执行 s = 'bar' + s

是否有类似于 =+ (这不是真实的)之类的操作,例如:

In[1]:  s = 'foo'
In[2]: s =+ 'bar'
In[3]: print(s)

Out[1]: barfoo

提前感谢您的帮助:)

最佳答案

这在 Python 中不存在。您无法创建新的运算符,因此您也无法实现它。但是,没有什么问题不能通过另一层间接解决来解决!

class ReflectedAugmentedAssignableString(object):
def __init__(self, value):
self.value = value

def __iadd__(self, other):
self.value = other + self.value
return self

def __unicode__(self):
return self.value

raastring = ReflectedAugmentedAssignableString("foo")
raastring += "bar"
print(raastring)

>>> "barfoo"

注意:这太糟糕了^,请不要这样做。

关于python - Python 中是反射增广加法 (__iadd__) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55713651/

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