Python : 포함 된 패키지 가져 오기
패키지 내부에있는 모듈 __init__.py
에서 해당 패키지 내에 정의 된 함수를 사용해야 합니다. 그 기능을 사용할 수 있도록 패키지 내에있는 모듈 내에서 패키지를 가져 오려면 어떻게해야합니까?
가져 오기 __init__
모듈 내부하면 패키지를 가져올 수 있지만, 대신에 모듈 이름이되지 않습니다 __init__
다른 이름을 가진 것들의 두 복사본으로 이어지는, ...
이것을 수행하는 비단뱀적인 방법이 있습니까?
또한 Python 2.5부터 상대 가져 오기가 가능합니다. 예 :
from . import foo
http://docs.python.org/tutorial/modules.html#intra-package-references 에서 인용 :
Python 2.5부터는 위에서 설명한 암시 적 상대 가져 오기 외에도 from module import name 형식의 import 문을 사용하여 명시 적 상대 가져 오기를 작성할 수 있습니다. 이러한 명시 적 상대 가져 오기는 선행 점을 사용하여 상대 가져 오기에 관련된 현재 및 상위 패키지를 나타냅니다. 예를 들어 주변 모듈에서 다음을 사용할 수 있습니다.
from . import echo
from .. import formats
from ..filters import equalizer
이것은 귀하의 질문에 정확히 대답하지는 않지만 함수를 __init__.py
파일 외부로 이동하고 해당 패키지 내부의 다른 모듈로 이동하도록 제안 합니다. 그런 다음 해당 함수를 다른 모듈로 쉽게 가져올 수 있습니다. 원하는 경우 __init__.py
해당 함수 (패키지를 가져올 때)를 가져올 파일에 import 문도있을 수 있습니다 .
따라서 패키지의 이름이 지정 testmod
되고 초기화 파일 이 지정 되고 testmod/__init__.py
패키지 내의 모듈이 파일 submod.py
내 에서 가져온 경우 testmod에 정의 된 원하는 것을 submod.py
말하고 import testmod
사용할 수 있어야합니다 .
상황이 무엇인지는 잘 모르겠지만이 방법으로 "다른 이름"문제를 해결할 수 있습니다.
import __init__ as top
top.some_function()
아니면? :
from __init__ import some_function
some_function()
Django에서 manage.py 파일은 from django.core.management import execute_manager
을 갖지만 execute_manager
모듈은 아닙니다. 디렉토리 __init__.py
모듈 내의 기능 management
입니다.
참조 URL : https://stackoverflow.com/questions/436497/python-import-the-tained-package
'development' 카테고리의 다른 글
IndexNotReadyException-Android 스튜디오 (0) | 2020.12.25 |
---|---|
기능적인 방식으로 예외를 처리하는 더 나은 접근 방식 (0) | 2020.12.25 |
Dotfuscator Community Edition은 얼마나 좋은가요? (0) | 2020.12.25 |
주석 (#)은 Vim의 삽입 모드에서 줄 시작으로 이동합니다. (0) | 2020.12.25 |
이름 속성은 HTML 문서에서 고유해야합니까? (0) | 2020.12.25 |