擅长:python、mysql、java
<p>实例可以自己访问和修改类属性。因此,您只需在类上设置一个属性并为其提供一个默认(None)值,然后在<em>dostuff</em>中执行任何操作之前检查该值。示例:</p>
<pre><code>class A():
nastyfileinfo=None
def dostuff(self,x):
if A.nastyfileinfo: print('nastyfileinfo already exists:',A.nastyfileinfo)
if not A.nastyfileinfo:
print('Adding nastyfileinfo')
A.nastyfileinfo='This is really nasty' ## open()
print('>>>nastyfileinfo:',A.nastyfileinfo)
## Continue doing your other stuff involving x
for j in range(0,10):
A().dostuff(j)
</code></pre>
<p><em>nastyfileinfo</em>也被认为是实例的一个属性,因此您可以用<strong>实例来引用它。nastyfileinfo,但是如果您在那里修改它,它将只更新该特定实例,而如果您在类上修改它,所有其他实例都可以看到它(前提是它们没有更改对nastyfileinfo的个人/自我引用)。你知道吗</p>
<pre><code>instants=[]
for j in range(0,10):
instants.append(A())
for instance in instants:
print(instance.nastyfileinfo)
instants[5].dostuff(5)
for instance in instants:
print(instance.nastyfileinfo)
</code></pre>