Python에서 클래스 C가 주어지면 클래스가 정의 된 파일을 어떻게 확인할 수 있습니까? 클래스 C 또는 C의 인스턴스에서 작동 할 수있는 것이 필요합니다.
내가이 작업을하는 이유는 일반적으로 같은 폴더에 함께 속한 파일을 저장하는 팬이기 때문입니다. Django 템플릿을 사용하여 HTML로 렌더링하는 클래스를 만들고 싶습니다. 기본 구현은 클래스가 정의 된 파일 이름을 기반으로 템플릿의 파일 이름을 추론해야합니다.
“base / artifacts.py”파일에 LocationArtifact 클래스를 넣은 다음 템플릿 이름이 “base / LocationArtifact.html”이되도록 기본 동작을 지정합니다.
답변
다음 과 같이 inspect 모듈을 사용할 수 있습니다 .
import inspect
inspect.getfile(C.__class__)
답변
시험:
import sys, os
os.path.abspath(sys.modules[LocationArtifact.__module__].__file__)
답변
이것은 Django에 대한 잘못된 접근 방식이며 실제로 작업을 강제합니다.
일반적인 Django 앱 패턴은 다음과 같습니다.
- /계획
- / appname
- models.py
- views.py
- / 템플릿
- index.html
- 기타
- / appname