gpt4 book ai didi

python - 找到加载基类定义变量的文件路径

转载 作者:行者123 更新时间:2023-11-30 22:53:46 27 4
gpt4 key购买 nike

我有以下示例代码:

$ cat f1.py
class classA(object):
var1 = "something"

$ cat f2.py
from f1 import classA
class classB(classA):
pass

$ cat loader.py
#!/usr/bin/python -tt
from f2 import classB

if __name__ == "__main__":
for cl in classB.__mro__:
print cl.__module__

$ ./loader.py
f2
f1
__builtin__

我想打印定义了 classB (f2.py) 和 classA (f1.py) 的文件的绝对或相对路径。具体来说,我想知道实际定义 var1 的类的文件。如果我有一个真正的模块,那么我会得到例如mymodule.f1 看起来我必须在 sys.path 中搜索才能真正在磁盘上找到它。

有没有更简单的方法?为什么类(即非实例)没有 __file__ 属性?

最佳答案

您想要 inspect模块。

import inspect
inspect.getfile(ClassA.__class__)
inspect.getfile(ClassB.__class__)

关于python - 找到加载基类定义变量的文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38087538/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com