擅长:python、mysql、java
<p>除非在某个地方实例化类,否则不能这样做。
当前在您的实现中,您将在此处实例化Compute类:</p>
<pre><code>def externalCompute():
q = Compute()
q.internalCompute()
</code></pre>
<p>但是一旦函数完成<strong>q</strong>就会超出范围并被销毁,因此您将丢失类包含的所有信息。为了做你想做的事情,<strong>Compute</strong>类必须被实例化为不是函数的本地类(或者你的函数需要返回<strong>Compute</strong>类的实例以保持它的状态)</p>
<p>通常,如果您的python文件是这样的,那么您可以使用一个“main”来实现:</p>
<pre><code> class Compute(object):
def __init__(self):
self.data = 0
def internalCompute(self):
self.data = 5
def externalCompute(q):
q.internalCompute()
def report(q):
# access the updated variable self.data from Compute class
data = q.data
print "You entered report"
if __name__ == '__main__':
q = Compute()
externalCompute(q)
report(q)
</code></pre>