使用networkx为图添加节点时触发TypeError报错如何解决?
问题排查与修复方案
错误产生原因
- 图对象未正确实例化:代码中
G = nx.Graph是直接将Graph类本身赋值给变量G,而非创建类的实例。调用未绑定的实例方法add_node时,第一个self参数无法自动传入,你传入的i会被识别为self参数的值,方法要求的node_for_adding参数就会被判定为缺失,触发对应报错。 - 内部变量名不匹配:函数形参定义为
user_input_for_nodes,但循环的range方法中调用的是未定义的user_input变量,即使修复第一个问题,后续也会触发NameError。
修复后可运行代码
import networkx as nx def create_a_graph(user_input_for_nodes): # 正确实例化Graph类 G = nx.Graph() # 使用正确的参数名生成节点序列 for i in range(user_input_for_nodes): G.add_node(i) print(G) create_a_graph(7)
运行结果
执行后将正常输出图结构信息:Graph with 7 nodes and 0 edges
内容的提问来源于stack exchange,提问作者Sourabh Raj
相关产品推荐
相关产品推荐

