一个类在多大程度上可以“保护”它的一个属性免受外部访问?
例如具有常规_secret
属性的类,原始值很容易访问:
class Paranoid(object):
def __init__(self):
self._secret = 0
def set(self, val):
self._secret = val * 10
def get(self):
return self._secret / 10
p = Paranoid()
p.set(123)
print p.get() # 123
print p._secret # 1230, should be inaccessible
如何使访问_secret
变得更加困难?
这没有实际应用,我只是好奇是否有新颖的方法可以使其更难访问(在 Python 的上下文中 - 所以忽略你可以将调试器附加到 Python 进程并检查内存的事实)