类实例化中参数名称错误¶
ID: py/call/wrong-named-class-argument
Kind: problem
Security severity:
Severity: error
Precision: very-high
Tags:
- reliability
- correctness
- external/cwe/cwe-628
Query suites:
- python-security-and-quality.qls
使用名称与正在实例化的类的__init__
方法的参数不对应的命名参数,会导致在运行时出现TypeError
。
建议¶
检查参数名称是否有拼写错误并进行修正。如果名称明显不同,则表明存在逻辑错误。更正错误所需的更改取决于是否指定了错误的参数,或是否指定了错误的类。
示例¶
class Point(object):
def __init__(self, x, y):
self.x = x
self.y = y
p = Point(x=1, yy=2) # TypeError: 'yy' is not a valid keyword argument