Python 是否可以找出类实例来自哪个模块?

Python 是否可以找出类实例来自哪个模块?,python,class,module,instance,Python,Class,Module,Instance,我想知道是否可以从该模块的类实例获取模块名和目录路径。 我之所以需要它,是因为我用pickle保存了一个类实例,并且当我从另一个软件(在同一台计算机上)加载它时,我需要知道这个类来自何处 更新 所以我尝试了@albar的答案 >>> from Models import Model_physio_moyen >>> b = Model_physio_moyen.pop_Sigmoid_outside_noise >>> module_name

我想知道是否可以从该模块的类实例获取模块名和目录路径。 我之所以需要它,是因为我用pickle保存了一个类实例,并且当我从另一个软件(在同一台计算机上)加载它时,我需要知道这个类来自何处

更新 所以我尝试了@albar的答案

>>> from Models import Model_physio_moyen
>>> b = Model_physio_moyen.pop_Sigmoid_outside_noise
>>> module_name = sys.modules[b.__module__].__name__
>>> module_name
'Models.Model_physio_moyen'
因此,除非类是使用
numba
jitclass
编译的,否则该类将正常工作:

>>> from Models.Pops_Stim import ATN
>>> a = ATN.pop_ATN()
>>> module_name = sys.modules[a.__module__].__name__
>>> module_name
'numba.jitclass.boxing'

在这种情况下,我希望能找到
Models.Pops\u Stim
,但我得到的是'numba.jitclass.boxing'。假设您的实例名为
a

import sys
module_name = sys.modules[a.__module__].__name__
module_file = sys.modules[a.__module__].__file__

好的,这是可行的,但如果类是用
jitclass
编译的,就不行了。我更新了我的问题。不过,我不知道在那种情况下是否可以恢复模块名。