Кажется, я не могу использовать функцию внутри другой функции - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь построить небольшую проблему короткого пути. Я успешно создал узлы как объекты, определил начальный и последний с выделенными функциями и вычислил (с выделенной функцией) соседей внутри радиуса для любого данного узла. используя евклидово расстояние (также выделенную функцию)

Я уверен, что функция соседей, где узлы - это узлы списка, а узел - это узел, из которого я хочу вычислить соседние узлы, работает.

def neighbors(nodes,node):
    neighbors=[]
    for i in nodes:
        dist=distance(i,node)
        if dist<=15:
            neighbors.append(i)
    return neighbors

когда я пытаюсь вызвать функцию для выбора пути от начального узла до конечного узла

def choose_path(final_node,starting_node,nodes):
    neighbors=neighbors(nodes,starting_node)
    more code

после того, как я определил узлы и начальный узел, возникает ошибка: «локальная переменная "соседи" ссылались до назначения ", и я не могу понять, почему. Я что-то не так делаю?

Заранее спасибо тем, кто мне поможет!

1 Ответ

1 голос
/ 31 марта 2020

Вы пытаетесь вызвать neighbors() и затем присвоить результат neighbors.

Не используйте то же имя для вашей переменной, что и для вашей функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...