问题:Pylint W0212 受保护访问

在 Python 中,带有一个下划线的前缀表示不应在其类之外访问成员。这似乎是基于每个类的,例如Java和C++。

但是,pylint 似乎在每个对象的基础上强制执行此约定。有没有办法在不诉诸#pylint: disable=protected-access的情况下允许按类访问?

class A:
    def __init__(self):
        self._b = 5

    def __eq__(self, other):
        return self._b == other._b

结果:

pylint a.py
a.py:6: W0212(protected-access) Access to a protected member _b of a client class

Pylint 在此处描述消息。

解答

pylint 不知道other是哪种类型(应该如何,您可以将 A 的实例与所有内容进行比较),因此发出警告。我认为没有办法禁用警告。

您可以仅禁用该行的警告,并将# pylint: disable=W0212附加到该行。

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐