复制Python模块/包,改变其行为&然后将其行为与原始行为进行比较?

时间:2013-11-26 10:04:47

标签: python class simulator

我正在尝试编写一个可以模拟不同场景的程序。

世界模型由各种python对象表示,通常是函数和类。我想保留世界的原始版本和新版本。

从概念上讲,我认为我想定义当前的世界,然后改变它的位,并模拟两者。

例如,我期待这样的事情:

import world
from simulator import simulate
from world_changer import change, copy_world

world0 = world
world1 = change(copy_world(world))

results0 = simulate(world0)
results1 = simulate(world1)

print results0, results1

世界通常会成为一个包,因为其中有很多内容,模块中的类似乎是表示有状态过程的自然方式。

我真的不知道这是否可能,或者我是否以正确的方式思考这个问题。

1 个答案:

答案 0 :(得分:0)

你的问题非常抽象,但依赖注入似乎是一个合理的选择:

import world
from simulator import simulate
from sub_worlds import sub_world_0, sub_world_1

world0 = world.World(sub_world_0)
world1 = world.World(sub_world_1)
...