跳到内容

private-member-access (SLF001)

派生自 flake8-self 代码检查器。

作用

检查对“私有”类成员的访问。

为什么这不好?

在 Python 中,约定是这样的:以单个下划线为前缀或以前缀但不以后缀双下划线的类成员被认为是私有的,仅供内部使用。

使用此类“私有”成员被认为是滥用该类,因为不能保证该成员在未来的版本中会存在,或者具有相同的类型,或者具有相同的行为。 相反,请使用该类的公共接口。

此规则忽略对双下划线方法(例如,__init__)和单下划线方法(例如,_missing_)的访问。

示例

class Class:
    def __init__(self):
        self._private_member = "..."


var = Class()
print(var._private_member)

建议改为

class Class:
    def __init__(self):
        self.public_member = "..."


var = Class()
print(var.public_member)

Options (选项)

参考