如何在Python中获取类的文件路径?

时间:2009-03-30 13:59:00

标签: python class introspection

给定Python中的C类,如何确定该类定义的文件?我需要一些可以在C类或C语言实例中起作用的东西。

我这样做的原因是因为我一般都喜欢将属于同一文件夹的文件放在同一个文件夹中。我想创建一个使用Django模板将其自身呈现为HTML的类。基本实现应根据定义类的文件名推断模板的文件名。

假设我将一个类LocationArtifact放在文件“base / artifacts.py”中,那么我希望默认行为是模板名称是“base / LocationArtifact.html”。

3 个答案:

答案 0 :(得分:99)

您可以使用inspect模块,如下所示:

import inspect
inspect.getfile(C.__class__)

答案 1 :(得分:26)

尝试:

import sys, os
os.path.abspath(sys.modules[LocationArtifact.__module__].__file__)

答案 2 :(得分:4)

这是Django的错误方法,并且真正强迫事物。

典型的Django应用程序模式是:

  • /项目
    • /应用程序的名字
      • models.py
      • views.py
      • /模板
        • 的index.html