次のように、モジュールのトップレベルでクラスWorldのインスタンスを作成することで簡単に実行できます。WorldWorld
#module named World
class World():
def __init__(self):
self.world = Atlas()
world = World()
これimport Worldで、他のモジュールのいずれかでWorld.world、クラスの唯一のインスタンスとして使用できますWorld。これは少し混乱します。これはクラスが作成World.world.worldする のインスタンスでAtlasあるためWorld、そこで名前を変更することを強くお勧めします。
Greek_godsモジュールは次のようになります。
#module named Greek_gods
import World
class zeus():
world = World.world.world
worldクラスの初期化子に入れる代わりにzeus、クラス属性にしたことに注意してください。Atlasこれは、このインスタンス (何らかの理由で と呼ばれるworld) をすべてのzeusインスタンス間で共有したいように見えるためです。Greek_godsこれがどのように見えるかの例として、次のコードをチェックしてください (テストのためにモジュールに入れることができます):
z1 = zeus()
z2 = zeus()
assert World.world.world is z1.world is z2.world