__init__
方法返回值¶
ID: py/explicit-return-in-init
Kind: problem
Security severity:
Severity: error
Precision: very-high
Tags:
- reliability
- correctness
Query suites:
- python-security-and-quality.qls
类的 __init__
方法用于初始化新对象,而不是创建对象。因此,它不应返回任何值。返回 None
是正确的,因为不会出现运行时错误,但这表明返回值是有意义的,而实际上并非如此。
建议¶
将 return expr
语句转换为简单的 return
语句,或者如果它位于方法的末尾,则完全省略它。
示例¶
在本例中,__init__
方法尝试返回新创建的对象。这是一个错误,应该删除 return 方法。
class ExplicitReturnInInit(object):
def __init__(self, i):
self.i = i
return self
参考¶
Python: The init method.