<p>你要找的是函数中的静态变量。正如在<a href="https://stackoverflow.com/questions/279561/what-is-the-python-equivalent-of-static-variables-inside-a-function">this</a>问题中所描述的,您需要在代码的任何地方用<code>gibsSample.sample</code>替换<code>sample</code>:</p>
<pre><code>def gibsSample(pB,pC,pA_B,pD_BC,pE_D,pF_C,label_A,label_B,label_C,label_D,label_E,label_F,T):
#initial state
gibsSample.sample=['A=F','B=n','C=F','D=h','E=F','F=F']
sampleState=[]
for i in range(T):
#draw sample A from p(A | B,C,D,E,F)
sample_A=sampleA(gibsSample.sample,pA_B)
gibsSample.sample[0]=sample_A
#draw sample B from p(B | A,C,D,E,F)
sample_B=sampleB(gibsSample.sample,pB,pA_B,pD_BC)
gibsSample.sample[1]=sample_B
#draw sample C from p(C | A,B,D,E,F)
sample_C=sampleC(gibsSample.sample,pC,pD_BC,pF_C)
gibsSample.sample[2]=sample_C
#draw sample D from p(D | A,B,C,E,F)
sample_D=sampleD(gibsSample.sample,pD_BC,pE_D)
gibsSample.sample[3]=sample_D
#draw sample E from p(E | A,B,C,D,F)
sample_E=sampleE(gibsSample.sample,pE_D)
gibsSample.sample[4]=sample_E
#draw sample F from p(F | A,B,C,D,E)
sample_F=sampleF(gibsSample.sample,pF_C)
gibsSample.sample[5]=sample_F
sampleState.append(gibsSample.sample)
gibsSample.sample = [None] * 6
return sampleState
</code></pre>