等价于 =+ 的字符串,但将现有字符串附加到新字符串而不是添加到新字符串之前

String equivalent of =+ but existing string as appended rather than prepended to new string

我正在使用 PyCharm(版本 4.0.3)并收到样式警告 Assignment can be replaced with augmented assignment 在以下代码的第二行*:

abc = 'and cheese'
abc = 'ham' + abc

* - 我的代码实际上不是这段代码,但它会产生相同的错误。我以编程方式生成两个字符串,我必须/想要在第二行(英语语法的第一部分)之前生成第一行(英语语法的第二部分)。

但我不知道什么增强赋值可以做到这一点。如果代码是这样的(其中可以按执行顺序首先生成所需最终字符串的第一部分)

abc = 'ham'
abc = abc + 'and cheese'

那么我相信这个问题可以通过 += 运算符轻松解决:

abc = 'ham'
abc += 'and cheese'

但是在我的问题的上下文中('and cheese' 部分在 'ham' 之前声明),有没有办法满足这个警告?

给猫剥皮的方法不止一种(或构造cat字符串)。

您可以使用 str.join 进行连接,但对于小型列表,它的效率可能略低:

abc = " ".join((abc, 'and cheese'))

或使用格式:

abc = "{} {}".format(abc, 'and cheese')

但实际上,消除警告的正确方法是为 IDE 提交错误报告,因为看起来您的代码没有任何问题(评论中有人已经指出它是无法在最新版本上重现)。