Нет, вы не можете напрямую получить доступ к состоянию переменной внутри функции. Если вы хотите получить доступ к переменным, подобным этому
heuristic2(state).distanceToSquare
Тогда вам нужно будет heuristic2
вернуть класс со свойством distanceToSquare
class Heuristic():
def __init__(self, val, dis, dirt):
self.value = value
self.distanceToSquare = dis
self.numDirtySquares = dirt
и скорректировать возвратоператор для возврата каждого значения как части класса
v = 2 * (distanceToSquare * numDirtySquares + 1) + sum( \
(numDirtySquares - x) * 4 + 1 for x in range(0, numDirtySquares + 1))
return Heuristic(v, distanceToSquare, numDirtySquares)
def heuristic3(self, state):
h2 = heuristic2(state)
return h2.value + 2 * (h2.distanceToSquare * h2.numDirtySquares + 1)