2013-11-26 30 views
0

我正在嘗試編寫一個可以模擬不同場景的程序。複製一個Python模塊/包,改變它的行爲,然後比較它的行爲與原始?

世界的模型由各種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 

的世界通常是一個封裝有很多了怎麼回事,和類似乎代表了一個狀態的自然方式處理。

我真的不知道這是否可能,或者我是否以正確的方式思考這個問題。

+0

我一直有「問題」當我在Python Shell中工作,當我改變了模塊,我不得不將其導入再次。也許這對你有用。 進口世界world1 –

+0

和進口世界world2 –

+0

這將只提供兩個引用同一個對象,據我所知 – cammil

回答

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) 
... 
相關問題