2011-03-11 5 views

答えて

11

xがクラスであれば、x.__module__x.__class__.__module__はあなたに別のものを与える:

# (Python 3 sample; use 'class Example(object): pass' for Python 2) 
>>> class Example: pass 

>>> Example.__module__ 
'__main__' 
>>> Example.__class__.__module__ 
'builtins' 

クラスから属性が代わりに使用されている直接__module__を定義していない例えば。

>>> Example().__module__ 
'__main__' 

私はあなたが実際に知りたいモジュールを明確にする必要があると思います。それがクラス定義を含んでいるモジュールであれば、そのことを明示することが最善です。したがってx.__class__.__module__を使用します。インスタンスは通常、作成されたモジュールを記録しないので、x.__module__は誤解を招く可能性があります。