是否有可能找出一个类实例来自哪个模块?

时间:2018-03-19 08:33:33

标签: python class module instance

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

更新

所以我尝试了@albar的aswer

>>> 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'

除非使用jitclass numba编译了该类,否则该工作正常工作:

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

在这种情况下,我希望我能找到Models.Pops_Stim,但我得到的是#numba.jitclass.boxing'而是。

1 个答案:

答案 0 :(得分:1)

假设您的实例名为a

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