如何获得Python中的类的文件path?

给定Python中的类C,如何确定类定义在哪个文件中? 我需要一些可以从C类或从C类实例工作的东西。

我这样做的原因,是因为我一般都把粉丝放在同一个文件夹里。 我想要创build一个使用Django模板来将自己呈现为HTML的类。 基本的实现应该根据类定义的文件名来推断模板的文件名。

说我把一个类的位置Artifact文件“base / artifacts.py”,然后我想默认行为是模板名称是“base / LocationArtifact.html”。

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

import inspect inspect.getfile(C.__class__) 

尝试:

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

这是Django的错误方法,并且确实是在强制执行。

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

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