跳到内容

unnecessary-double-cast-or-process (C414) (不必要的双重转换或处理 (C414))

Derived from the flake8-comprehensions linter. (源自 flake8-comprehensions linter。)

修复总是可用的。

作用

检查 list(), set(), sorted()tuple() 调用中不必要的 list(), reversed(), set(), sorted()tuple() 调用。

为什么这不好?

通过将列出的函数包装在额外的 list(), set(), sorted()tuple() 调用中来双重转换或双重处理可迭代对象是不必要的。 这样做是多余的,并且可能会使读者感到困惑。

示例

list(tuple(iterable))

建议改为

list(iterable)

此规则适用于各种函数,包括 list(), reversed(), set(), sorted()tuple()。 例如:

  • list(iterable) 代替 list(list(iterable))
  • list(iterable) 代替 list(tuple(iterable))
  • tuple(iterable) 代替 tuple(list(iterable))
  • tuple(iterable) 代替 tuple(tuple(iterable))
  • set(iterable) 代替 set(set(iterable))
  • set(iterable) 代替 set(list(iterable))
  • set(iterable) 代替 set(tuple(iterable))
  • set(iterable) 代替 set(sorted(iterable))
  • set(iterable) 代替 set(reversed(iterable))
  • sorted(iterable) 代替 sorted(list(iterable))
  • sorted(iterable) 代替 sorted(tuple(iterable))
  • sorted(iterable) 代替 sorted(sorted(iterable))
  • sorted(iterable) 代替 sorted(reversed(iterable))

修复安全性

This rule's fix is marked as unsafe, as it may occasionally drop comments when rewriting the call. In most cases, though, comments will be preserved. (此规则的修复被标记为不安全,因为它在重写调用时有时会删除注释。但在大多数情况下,注释将被保留。)