考虑这个类:
class A(object):
def __init__(self, name = 'hi'):
self._name = name
def getname(self):
return self._name
def setname(self, value):
self._name = value
name = property(getname, setname)
a = A('hello')
a.name 会给我“你好”
但是,我注意到,a.__dict__['name'] = 'something'
和实例变量。“名称”已重置。例如。a.__dict__['_name'] = {'animal' : 'tiger'}
并a.name
导致{'animal' : 'tiger'}
.
我想知道任何人都可以使用相同/相似的东西来破坏实例变量的值,只需访问该__dict__
特定对象的魔术方法吗?我在这里错过了什么吗?