CodeQL 文档

方法的第一个参数未命名为“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

单击以查看 CodeQL 存储库中的查询

普通方法应该至少有一个参数,并且第一个参数应该称为 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

参考资料

  • ©GitHub, Inc.
  • 条款
  • 隐私