Python约定建议使用下划线继续保护属性的名称。据我了解,受保护的属性只能在给定的类及其子类中使用。那么您能否告诉我为什么当我尝试在替代初始值设定项中使用受保护属性时,为什么pylint会返回受保护访问警告?classmethod中的受保护属性
class Test(object):
def __init__(self, name):
self.name = name
self._count = 0
self._bound = 1 # max value
@classmethod
def specific_state(cls, name, bound):
test = cls(name)
test._bound = bound
我也明白,在这种特殊情况下(在上面的例子中给出)我上的对象的实例工作,但它仍然是在类定义内因而似乎从我的角度确定。在这件事情上,pylint有点太严格了,还是我误解了?