unnecessary-dict-kwargs (PIE804)
派生自 flake8-pie 代码检查工具。
有时提供修复。
作用
检查不必要的 dict
关键字参数。
为什么这不好?
如果 dict
的键是有效的标识符,则可以直接将其作为关键字参数传递,而无需构建不必要的字典。 这也使代码更具类型安全性,因为类型检查器通常无法精确地验证动态关键字参数。
示例
def foo(bar):
return bar + 1
print(foo(**{"bar": 2})) # prints 3
# No typing errors, but results in an exception at runtime.
print(foo(**{"bar": 2, "baz": 3}))
建议改为
def foo(bar):
return bar + 1
print(foo(bar=2)) # prints 3
# Typing error detected: No parameter named "baz".
print(foo(bar=2, baz=3))
修复安全性
此规则的修复被标记为对于项之间穿插注释的字典是不安全的,因为注释可能会被删除。
例如,在以下情况下,修复将被标记为不安全
因为这将被转换为 foo(x=1.0, y=2.0)
,而没有任何注释。