2011-07-13 26 views
0

このモジュールモジュール間の循環参照?

# mymodule.py 
import __main__ 

を持っていると私は、Pythonインタプリタでそれをインポートする場合:

>>> import mymodule 
>>> dir(mymodule) 
['__builtins__', '__doc__', '__file__', '__main__', '__name__', '__package__'] 
>>> dir() 
['__builtins__', '__doc__', '__name__', '__package__', 'mymodule'] 
>>> import sys 
>>> sys.modules['__main__'] == mymodule.__main__ 
True 
>>> mymodule == mymodule.__main__.mymodule 
True 

私はちょうど__main__をインポートするモジュールをインポートすることで、循環参照を作成しました。これは悪いですか?

+0

'これは悪いですか?[はい](http://en.wikipedia.org/wiki/Anti-pattern)。 – JBernardo

+0

@JBernardo:無関係のリンク。 –

+0

なぜあなたは '__main__'をインポートしますか? – SingleNegationElimination

答えて

1

いいえPythonはこのような循環参照には問題ありません。あなたが確認しなければならない唯一のことは、定義されるまで他のモジュールから名前を使用しないことです。