对于'更好'更简单的代码,我想知道是否可以执行保留/反射增强的添加分配。
[我已经检查了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"
注意:这很可怕^,请不要这样做。