1
我执行的搜索算法(BFS),并具有以下Node
类:如何编写__iter__以从叶节点返回到根?
class Node:
def __init__(self, state=None, action=None, path_cost=None, parent=None):
self._state = state
self._action = action
self._path_cost = path_cost
self._parent = parent
我BFS返回求解器解决方案节点(子)。与此节点然后我就可以,例如,计算总路径开销如下(此代码是另一个Summary
类的一部分):
def path_cost(self):
self._cost = self._node.path_cost
node = self._node.parent
while node:
self._cost += node.path_cost
node = node.parent
return self._cost
有没有更好的办法通过创建一个自定义__iter__
的方法来做到这一点Node
?
感谢您的回答。虽然我看到这是如何工作的,但我的具体问题是'__iter__'是否可以用来解决问题?如果不是,我需要了解为什么不。 –
已更新。 '__iter__'本身可以是一个生成器函数。 – schwobaseggl
甜,这是有效的!谢谢! –