擅长:python、mysql、java
<p>如果我没听错,这就是你所需要的:</p>
<pre><code># edited according to discussion in comments
class C:
_shared_dict = None
def __init__(self):
if self._shared_dict is None:
print("initializing")
self.x = 1
self.y = 2
self.__class__._shared_dict = self.__dict__
else:
self.__dict__ = self._shared_dict
a=C()
b=C()
print(id(a), a.x, a.y)
print(id(b), b.x, b.y)
</code></pre>
<p>所有实例将共享相同的数据,并且此数据将只计算一次。在</p>
<p>请注意,您可以在读取时将共享数据称为<code>self._shared_dict</code>,但写入时必须使用类属性<code>self.__class__._shared_dict</code>的全名。在</p>