[PYTHON] 절대 수입을 사용하는 경우
PYTHON절대 수입을 사용하는 경우
나는 때때로 패키지 사이의 이름 충돌로 실행되는 오래된 파이썬 코드를 변경하고 있습니다. 절대 수입을 사용해야하는시기와 같은 수준의 모듈을 이름으로 만 가져 오는 것이 적절한 지에 대한 질문이 있습니다.
/package/
/package/__init__.py
/package/subA
/package/subA/__init__.py
/package/subA/moduleA.py
/package/subA/moduleB.py
/package/subB
/package/subB/__init__.py
/package/subB/moduleA.py
/package/subB/moduleB.py
패키지 내의 모든 import 문은 다음과 같아야합니다.
import package.subX.moduleX
또는
from package.subX import moduleX
하위 패키지 __init__.py 파일은 어떻습니까? 간단히 말하면 틀린가?
import moduleA
import moduleB
또는 /package/subA/moduleA.py에서 단순히 다음을 넣는 것이 잘못 될 수 있습니다.
import moduleB
해결법
-
==============================
1.상대적 수입은 오랫동안 기본 행동 이었지만 매우 나쁜 아이디어로 밝혀졌습니다. 이 사이트에서 누군가가 내장 모듈 다음에 파일의 이름을 지정하고 이상한 오류 메시지로 응용 프로그램을 부 quite던 질문을 찾을 수 있습니다.
상대적 수입은 오랫동안 기본 행동 이었지만 매우 나쁜 아이디어로 밝혀졌습니다. 이 사이트에서 누군가가 내장 모듈 다음에 파일의 이름을 지정하고 이상한 오류 메시지로 응용 프로그램을 부 quite던 질문을 찾을 수 있습니다.
패키지를 포함하여 어디에서나 프로젝트를 참조하여 절대적인 수입을하는 것이 항상 좋은 이유입니다.
즉, 다음 스타일을 사용하십시오.
import myproject.mypackage from myproject.mypackage.myfile import MyClass
PEP8의 견적 :
from https://stackoverflow.com/questions/5811463/when-to-use-absolute-imports by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 프로그래밍 방식으로 Tensorboard 파일을 어떻게 읽습니까? (0) | 2018.10.27 |
---|---|
[PYTHON] OSX에서 Python 2.6 용 MySQLdb 설치하기 [duplicate] (0) | 2018.10.27 |
[PYTHON] 파이썬에서 대괄호 안에있는 문자열 가져 오기 (0) | 2018.10.27 |
[PYTHON] 부모와 자식 살해 (0) | 2018.10.27 |
[PYTHON] 목록을 피클하는 방법? [닫은] (0) | 2018.10.27 |