파이썬에서 클래스의 FilePath를 어떻게 얻습니까?
-
22-08-2019 - |
문제
Python의 클래스 C가 주어지면 클래스가 정의 된 파일을 어떻게 결정할 수 있습니까? 클래스 C 또는 C의 인스턴스에서 작동 할 수있는 것이 필요합니다.
내가이 작업을 수행하는 이유는 일반적으로 같은 폴더에 함께있는 파일을 넣는 팬이기 때문입니다. Django 템플릿을 사용하여 HTML로 렌더링하는 클래스를 만들고 싶습니다. 기본 구현은 클래스가 정의 된 파일 이름을 기반으로 템플릿의 파일 이름을 추론해야합니다.
"base/artifacts.py"파일에 LocationArtifact를 클래스로 넣었다고 가정하면 기본 동작이 템플릿 이름이 "base/locationArtifact.html"이기를 원합니다.
해결책
당신은 사용할 수 있습니다 검사 다음과 같은 모듈 :
import inspect
inspect.getfile(C.__class__)
다른 팁
노력하다:
import sys, os
os.path.abspath(sys.modules[LocationArtifact.__module__].__file__)
이것은 장고에 대한 잘못된 접근법이며 실제로 일을 강요합니다.
일반적인 django 앱 패턴은 다음과 같습니다.
- /프로젝트
- /appName
- Models.py
- views.py
- /템플릿
- index.html
- 등.
- /appName
제휴하지 않습니다 StackOverflow