擅长:python、mysql、java
<p>不,不能直接访问函数中变量的状态。如果您想访问这样的变量</p>
<pre><code>heuristic2(state).distanceToSquare
</code></pre>
<p>然后必须使<code>heuristic2</code>返回一个具有<code>distanceToSquare</code>属性的类</p>
<pre><code>class Heuristic():
def __init__(self, val, dis, dirt):
self.value = value
self.distanceToSquare = dis
self.numDirtySquares = dirt
</code></pre>
<p>并调整return语句以将每个值作为类的一部分返回</p>
<pre><code>v = 2 * (distanceToSquare * numDirtySquares + 1) + sum( \
(numDirtySquares - x) * 4 + 1 for x in range(0, numDirtySquares + 1))
return Heuristic(v, distanceToSquare, numDirtySquares)
</code></pre>
<hr/>
<pre><code>def heuristic3(self, state):
h2 = heuristic2(state)
return h2.value + 2 * (h2.distanceToSquare * h2.numDirtySquares + 1)
</code></pre>