类可以在多大程度上“保护”其外部访问中的某个属性?防止在Python中访问“private”属性
例如,与常规的_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进程并检查内存)
我敢肯定,这是重复的,我记得看到一个问题,有一串有趣的尝试,在保护属性的答案..但我的搜索没有发现任何 – dbr
https://plus.google.com/114760865724135687241/帖子/ HAqFzi3fnux – bossylobster