前缀的Python plus-equals运算符

时间:2015-12-09 23:10:17

标签: python python-3.x operators

Python +=运算符是否有变体而不是追加?

即。 x += 'text',而不是x+'text''text'+x

修改

我正在尝试在程序的一部分中创建命令行,并且我不断收到错误:

Traceback (most recent call last):
  File "./main.py", line 15, in <module>
    a[0] = 'control/'+a[0]
TypeError: 'str' object does not support item assignment

代码段:

a = a.split()

# Command Line
    if (a[0][0:1] == '!') and (len(a[0]) > 1):
      a = a[0][1:] # remove evoker
      if a == 'quit': break
      else:
        try:
          a[0] += 'control/'+a[0]
          subprocess.call(a)
        except:
          print("That is not a valid command.")

2 个答案:

答案 0 :(得分:2)

没有前置运算符。

答案 1 :(得分:1)

这可能是您正在寻找的解决方案。

如果您使用自己的类,则可以定义覆盖__iadd__的非常特殊的增量操作:

class My_str(str):
    def __iadd__(self, other):
        return other+self

ms = My_str('hello')
ms += 'world'
print(ms)

产生

worldhello

因此,使用列表中的这些元素,您可以执行类似

的操作
>>> l = [My_str(i) for i in range(5)]
>>> l[1] += 'text'
>>> l
['0', 'text1', '2', '3', '4']

欢迎所有评论。