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有點太嚴格了,還是我誤解了?