복붙노트

[PYTHON] 파이썬에서 클래스에 대한 파일 경로를 얻으려면 어떻게해야합니까?

PYTHON

파이썬에서 클래스에 대한 파일 경로를 얻으려면 어떻게해야합니까?

파이썬에서 클래스 C가 주어지면 클래스가 정의 된 파일을 어떻게 결정할 수 있습니까? 클래스 C 또는 인스턴스 C에서 작동 할 수있는 무언가가 필요합니다.

내가이 일을하는 이유는 내가 일반적으로 같은 폴더에 속한 파일들을 넣는 팬이기 때문이다. 장고 템플릿을 사용하여 자신을 HTML로 렌더링하는 클래스를 만들고 싶습니다. 기본 구현은 클래스가 정의 된 파일 이름을 기반으로 템플릿의 파일 이름을 유추해야합니다.

파일 "base / artifacts.py"에 LocationArtifact 클래스를 넣은 다음 템플릿 동작 이름이 "base / LocationArtifact.html"이되도록 기본 동작을 원한다고 가정 해 봅시다.

해결법

  1. ==============================

    1.다음과 같이 inspect 모듈을 사용할 수 있습니다.

    다음과 같이 inspect 모듈을 사용할 수 있습니다.

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

    2.시험:

    시험:

    import sys, os
    os.path.abspath(sys.modules[LocationArtifact.__module__].__file__)
    
  3. ==============================

    3.이것이 장고에 대한 잘못된 접근이며 실제로 강제하는 것입니다.

    이것이 장고에 대한 잘못된 접근이며 실제로 강제하는 것입니다.

    일반적인 Django 앱 패턴은 다음과 같습니다.

  4. from https://stackoverflow.com/questions/697320/how-do-i-get-the-filepath-for-a-class-in-python by cc-by-sa and MIT license