Python类实现求助:如何正确构建含RandomWalker与NetworkX图的Simulation类
问题修正说明
错误分析
你的Simulation类存在几个核心问题:
- 不必要继承RandomWalker:任务要求Simulation包含一个RandomWalker实例,而非继承它
- 实例变量赋值语法错误:
- 错误调用
RandomWalker.__init__来赋值random_walker,实际上直接使用传入的参数即可 self.nx.Graph() = G是完全错误的语法,传入的G已经是networkx图实例,直接赋值给self.G就行
- 错误调用
- 参数名与任务要求不符:任务要求结束时间变量名为
t_end,你用了t
修正后的代码
首先确保RandomWalker.py的代码正确(你已经写对了):
# RandomWalker.py class RandomWalker: def __init__(self, position=0): self.position = position
然后编写Simulation类:
import networkx as nx from RandomWalker import RandomWalker class Simulation: def __init__(self, random_walker, G, lambda_, t_end): # 直接赋值传入的RandomWalker实例 self.random_walker = random_walker # 赋值传入的networkx图实例 self.G = G # 速率参数 self.lambda_ = lambda_ # 结束时间,变量名符合任务要求 self.t_end = t_end
使用示例
# 创建RandomWalker实例 walker = RandomWalker(position=5) # 创建networkx图 graph = nx.Graph() graph.add_nodes_from([1,2,3,4,5]) # 创建Simulation实例 sim = Simulation(random_walker=walker, G=graph, lambda_=0.5, t_end=100)
内容的提问来源于stack exchange,提问作者Dada
相关产品推荐
相关产品推荐

