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

How do I get the filepath for a class in Python?

如果在python中有一个C类,如何确定该类是在哪个文件中定义的?我需要一些可以从C类或者从C之外的实例中工作的东西。

我之所以这样做,是因为我通常喜欢把属于同一文件夹的文件放在一起。我想创建一个使用django模板将自己呈现为HTML的类。基本实现应该根据在其中定义类的文件名推断模板的文件名。

假设我在文件"base/artifacts.py"中放置了一个类locationartifact,那么我希望默认行为是模板名为"base/locationartifact.html"。


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

1
2
import inspect
inspect.getfile(C.__class__)


尝试:

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


对于姜戈来说,这是错误的做法,而且确实是强迫性的。

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

  • 项目
    • /AppNd
      • 模特儿
      • VIEW
      • 模板
        • 索引文件
        • 等。