方法的第一个参数未命名为“self”¶
ID: py/not-named-self
Kind: problem
Security severity:
Severity: recommendation
Precision: very-high
Tags:
- maintainability
- readability
- convention
Query suites:
- python-security-and-quality.qls
普通方法应该至少有一个参数,并且第一个参数应该称为 self
。这使其他开发人员能够清楚地了解参数的用途。
建议¶
如果至少有一个参数,则按照 PEP 8 中的样式指南建议,将第一个参数的名称更改为 self
。
如果没有参数,则它不能是普通方法。它可能需要标记为 staticmethod
,或者可以作为普通函数从类中移出。
示例¶
以下两种方法都可用于将值分配给 point
对象中的变量。第二种方法使关联更加清晰,因为使用了 self
参数。
class Point:
def __init__(val, x, y): # first parameter is mis-named 'val'
val._x = x
val._y = y
class Point2:
def __init__(self, x, y): # first parameter is correctly named 'self'
self._x = x
self._y = y