问题:如何在Python中获取类的文件路径?
给定Python中的类C,如何确定该类在哪个文件中定义?我需要可以从类C或从关闭C的实例工作的东西。
之所以这样做,是因为我通常不喜欢将属于同一文件的文件放在同一文件夹中。我想创建一个使用Django模板将其自身呈现为HTML的类。基本实现应根据定义类的文件名来推断模板的文件名。
假设我在文件“ base / artifacts.py”中放置了一个LocationArtifact类,那么我希望默认行为是模板名称为“ base / LocationArtifact.html”。
回答 0
您可以使用检查模块,如下所示:
import inspect
inspect.getfile(C.__class__)
回答 1
尝试:
import sys, os
os.path.abspath(sys.modules[LocationArtifact.__module__].__file__)
回答 2
对于Django而言,这是错误的方法,并且实际上是强迫的。
典型的Django应用程序模式为:
- /项目
- / appname
- models.py
- views.py
- /模板
- index.html
- 等等
- / appname