Python 2.7'NonType'对象没有属性

时间:2011-11-28 19:52:45

标签: python ironpython

我是Python新手,使用一组对象(Node),只是尝试迭代对象集并打印出变量'H'。不幸的是我不断收到错误:(“AttributeError:'NoneType'对象没有属性'H'”)。任何关于为什么会发生这种情况的见解将不胜感激。

这是我的类Node,它存储在集合中。

class Node:
    def __init__(self, row, col, heuristic):
        self.row = row
        self.col = col
        self.H = heuristic
        self.parent = None

    @classmethod
    def with_parent(self, row, col, heuristic, parent):
        self.row = row
        self.col = col
        self.H = heuristic
        self.parent = parent

这是输入第一个节点的集合。稍后会输入更多节点,但现在只添加一个节点仍然令人头疼

open_list = set()
start_row, start_col = start_loc
open_list.add(Node(start_row, start_col, 0))

以下是抛出错误的代码行:(“AttributeError:'NoneType'对象没有属性'H'”)

for open_node in open_list:
    sys.stdout.write("H: " + str(open_node.H))

一旦我能够解决这个问题,真正的目标就是对启发式进行排序。

current = sorted(open_list, key=lambda open: open.H)[0]

1 个答案:

答案 0 :(得分:3)

错误“AttributeError:'NoneType'对象没有属性'H'”表示open_list中的一个节点被赋值为'None'而不是被初始化。在您显示的行和有错误的行之间,open_list是否发生了任何事情?