все. Я создаю DiGraph, используя NetworkX и повторяя алгоритм над ним. В конкретной итерации каждый узел «n» изменяет определенный атрибут, скажем, «A_n». Теперь каждое ребро относительно этого конкретного узла «n» и данного предшественника «m» имеет другой интересный атрибут, который зависит от «A_n», назовем его «B_mn». Мой вопрос: возможно ли обновить «B_mn» «автоматически», изменив «A_n» для всех «n», «m» в моем наборе узлов? Я имею в виду, не повторяя узлы, а затем над их предшественниками, но используя какую-то динамическую функцию «B_mn (A_n)», которая меняет свое значение в тот момент, когда изменяется «A_n». Это возможно?Python's Networkx, обновляющие атрибуты «автоматически»
Я думал в чем-то вроде этого:
Пусть X и Y быть числами, давайте предположим, что
G.node [ "п"] [ "A"] = X и G.edge [» m "] [" n "] [" B "] = Y + G.node [" n "] [" A "]
Я хочу, чтобы, изменив значение X, значение атрибута« B » «в краю тоже будет обновлено.
Большое спасибо заранее за вашу помощь :)
Я не совсем понял, что вы хотите [но решение этого вопроса может помочь вам] (https://stackoverflow.com/questions/29800722/can-be-saved-into-a-variable-one- состояние). – Macabeus
Вы в порядке с атрибутом B, просто являющимся функцией, которая оценивается каждый раз, когда вы пытаетесь получить к ней доступ (в зависимости от того, что вы делаете, это может быть дорогостоящим, если оценивать много раз), или вы действительно хотите, чтобы это было определенное значение, которое обновляется каждый раз, когда узел изменяется (в зависимости от того, что вы делаете, это может быть дорого, если вес узлов сильно изменяется, а кромки не часто доступны). Первое относительно просто. Второй труднее. – Joel