Я новичок в Python и работаю с набором объектов (Node) и просто пытаюсь перебрать набор объектов и распечатать переменную 'H'. К сожалению, я продолжаю получать сообщение об ошибке: («AttributeError: объект« NoneType »не имеет атрибута« H »»). Любая идея о том, почему это происходит, будет принята с благодарностью.
Вот мой классовый узел, который хранится в наборе.
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]