3 つのモジュールが存在します。Cfg、メインおよびコンポーネント
Cfg.py
value = 0
Component.py
import Cfg
class index:
def GET(self):
return Cfg.value
Main.py
from Test import Cfg
import Component
urls = ('/', 'Component.index')
if __name__ == '__main__':
Cfg.value = 1
app = web.application(urls, globals())
app.run()
Component.Index の Get メソッドは 0 を返しますが、1 を期待しています。
編集#1
テストする最初の変更 main.py :
from test import Cfg
import Component
import test
if __name__ == '__main__':
importedCfg = id(Cfg)
cfgInComponent = id(Component.Cfg)
cfgInTest = id(test.Cfg)
print importedCfg, cfgInComponent, cfgInTest
print importedCfg == cfgInComponent == cfgInTest
結果 :
36202928 36203088 36202928 偽
main.py の 2 番目の変更:
import Cfg
import Component
if __name__ == '__main__':
importedCfg = id(Cfg)
cfgInComponent = id(Component.Cfg)
# cfgInTest = id(test.Cfg)
print importedCfg, cfgInComponent
print importedCfg == cfgInComponent
36858160 36858160 真
複数のインスタンスを作成したくない場合は、2 番目の方法に従う必要があります。