擅长:python、mysql、java
<p>我不确定我是否满意这样简单:</p>
<pre><code>>>> class DunderDictHider(object):
... __dict__ = {'fake': 'dict'}
...
>>> ddh = DunderDictHider()
>>> ddh.a = 1
>>> ddh.b = 2
>>>
>>> print ddh.a
1
>>> print ddh.__dict__
{'fake': 'dict'}
</code></pre>
<p>问题是这个班作弊?修好它!在</p>
^{pr2}$
<p>就在这里。但是,如果类定义了任何插槽,则完全失败。在</p>
<pre><code>>>> class DoesntHaveDict(object):
... __slots__ = ['a', 'b']
...
>>> dhd = DoesntHaveDict()
>>> dhd.a = 1
>>> dhd.b = 2
>>>
>>> print dhd.a
1
>>> dhd.__class__ = DictUnhider
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __class__ assignment: 'DoesntHaveDict' object layout differs from 'DictUnhider'
>>>
</code></pre>