[python] 파이썬에서 클래스의 파일 경로를 어떻게 얻습니까?

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
        • 기타

답변