当我有一个来自modu的类时,如何检索模块路径

2024-04-19 19:43:15 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中,如果我有一个类foo,我可以call foo.__module__获得一个包含它所属模块名称的字符串。你知道吗

如果我有一个模块bar,我可以调用bar.__file__来获取一个包含模块加载路径的字符串。你知道吗

当我只有类foo时,如何获得它所属的模块的路径?(foo.__module__返回一个字符串,而不是它所命名的模块的实例)


Tags: 模块实例字符串路径名称foobarcall
2条回答

sys.modules是从模块名到模块的映射:

sys.modules[foo.__module__].__file__

对于此类自省任务,我始终建议使用Python标准库的inspect模块:它可以处理一些特殊情况&c,并使整个过程更加顺畅。对于您的特定任务,^ {A1}可以很方便,例如,考虑……:/P>

>>> from sched import scheduler as someclass
>>> import inspect
>>> inspect.getsourcefile(someclass)
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/sched.py'

这总是试图给你.py文件,而不是有时给你.py文件,有时给你一个.pyc文件,而不是一个大问题,但一个更有用的“规律性”。你知道吗

相关问题 更多 >