2016-02-29 135 views
4

在Python中,带有一个下划线的前缀表示不应该在其类外部访问成员。这似乎是按照类别,如JavaC++Pylint W0212保护访问

但是,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的描述消息here

+0

鸭子打字和__eq__重载可能是危险的。我建议也测试self .__ class__ == other .__ class__ –

回答

4

pylint不知道哪种类型的other是(它应该如何,你可以比较A的一个实例和所有东西),因此警告。我认为没有办法解决警告。

您可以禁用该行的警告,只为该行添加# pylint: disable=W0212