2011-03-11 36 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__可能會引起誤解。