collection-literal-concatenation (RUF005)
有时提供修复。
作用
检查使用 +
运算符连接集合的情况。
为什么这不好?
在 Python 中,+
运算符可用于连接集合(例如,x + y
连接列表 x
和 y
)。
但是,可以使用解包运算符更有效地连接集合(例如,[*x, *y]
连接 x
和 y
)。
建议使用解包运算符来连接集合,因为它更具可读性和灵活性。 *
运算符可以解包任何可迭代对象,而 +
运算符仅适用于特定的序列,在许多情况下,这些序列必须属于同一类型。
示例
建议改为
修复安全性
此修复始终标记为不安全,因为 +
运算符使用 __add__
魔术方法,而 *
解包使用 __iter__
魔术方法。 这两者都可能有自定义实现,从而导致修复程序改变程序行为。