在Python中是否反映了增广加法?

在Python中是否反映了增广加法?,python,reverse,addition,augmented-assignment,Python,Reverse,Addition,Augmented Assignment,对于“更好”更简单的代码,我想知道是否可以执行保留/反射的增广加法赋值 [我已经检查了Stack Overflow的类似问题,但找不到任何问题。因此,如果这是重复我的道歉,请您链接答案。] 例如,使用字符串规则赋值可以得到: In[1]: s = 'foo' In[2]: s += 'bar' In[3]: print(s) Out[1]: foobar 但是,有没有任何方法可以通过反射顺序来实现这一点,而不必执行s='bar'+s 那么有没有类似于=+(这不是真的)的操作,比如: I

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

[我已经检查了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"

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

不,这不存在。遗憾的是,这没有在该语言中实现,谢谢您的“hack”!为什么这被认为是可怕的?这是可怕的,因为这是意想不到的。对于python,规则是更喜欢一种做某事的方式,这一点应该是显而易见的。如果你有一个很好的理由来选择这种方法,或者是一个没有人会从事的个人项目,那是一件事,但是如果它是一个共享的代码库,那么重要的是考虑可读性对你从这个“特征”中得到的影响。(最好的,因为我相信其他人会讨厌我的代码练习啊哈)。谢谢!