TypeError: add_edge() got an unexpected keyword argument 'weight'

TypeError: add_edge() got an unexpected keyword argument 'weight'

我尝试制作 PERT 图。因此,我尝试放置一个 bool 变量“_dirty”来检查图形是否变形。但是,add_egde 函数无法正常工作。代码有错吗?

我的图码:

class ClassName(nx.MultiDiGraph):
    def __init__(self):
        super().__init__()
        self._dirty = True 
        self._critical_path = None

    def add_edge(self, *args):
        """ add one edge """
        self._dirty = True
        super().add_edge(*args)

使用add_edge:

graph_name.add_edge(1, 2, weight = 35)

我得到的错误:

TypeError: add_edge() got an unexpected keyword argument 'weight'

看到你只指定获取参数,而不是关键字参数(在你的情况下是权重。)

尝试添加 **kwargs,如 add_edge(self, *args,**kwargs),应该没问题。 之后也不要忘记更新 super。 :)