2024-04-19 19:43:15 发布
网友
在python中,如果我有一个类foo,我可以call foo.__module__获得一个包含它所属模块名称的字符串。你知道吗
foo
call foo.__module__
如果我有一个模块bar,我可以调用bar.__file__来获取一个包含模块加载路径的字符串。你知道吗
bar
bar.__file__
当我只有类foo时,如何获得它所属的模块的路径?(foo.__module__返回一个字符串,而不是它所命名的模块的实例)
foo.__module__
sys.modules是从模块名到模块的映射:
sys.modules
sys.modules[foo.__module__].__file__
对于此类自省任务,我始终建议使用Python标准库的inspect模块:它可以处理一些特殊情况&c,并使整个过程更加顺畅。对于您的特定任务,^ {A1}可以很方便,例如,考虑……:/P>
inspect
>>> 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文件,而不是一个大问题,但一个更有用的“规律性”。你知道吗
.py
.pyc
sys.modules
是从模块名到模块的映射:对于此类自省任务,我始终建议使用Python标准库的
inspect
模块:它可以处理一些特殊情况&c,并使整个过程更加顺畅。对于您的特定任务,^ {A1}可以很方便,例如,考虑……:/P>这总是试图给你
.py
文件,而不是有时给你.py
文件,有时给你一个.pyc
文件,而不是一个大问题,但一个更有用的“规律性”。你知道吗相关问题 更多 >
编程相关推荐