패키지 상대참조 절대참조
Contents
11.3. 패키지 상대참조 절대참조¶
파이썬에서 모듈과 패키지를 임포트할 때, 절대 경로 또는 상대 경로를 사용할 수 있습니다.
각 방법의 사용법과 장단점을 이해하면 더 효율적으로 코드를 작성할 수 있습니다.
11.3.1. 절대 참조¶
절대 참조는 모듈의 전체 경로를 사용하여 모듈을 임포트하는 방법입니다.
모듈의 위치와 상관없이 항상 같은 방법으로 모듈을 참조할 수 있게 합니다.
11.3.1.1. 절대 참조 예제¶
다음과 같은 패키지 구조를 가정합니다.
mypackage/
__init__.py
module1.py
subpackage/
__init__.py
module2.py
mypackage안에 있는module1.pydef foo(): print("This is module1")
mypackage/subpackage안에 있는module2.pyfrom mypackage.module1 import foo def bar(): foo() print("This is module2")
mypackage/subpackage/module2.py내부에 있는bar()호출from mypackage.subpackage.module2 import bar bar() # 출력: # This is module1 # This is module2
11.3.2. 상대 참조¶
상대 참조는 현재 모듈의 위치를 기준으로 다른 모듈을 임포트하는 방법입니다.
패키지 내부의 모듈들 간의 참조에 유용합니다.
상대 참조는 .과 ..을 사용하여 현재 디렉토리와 상위 디렉토리를 나타냅니다.
.: 현재 디렉토리..: 상위 디렉토리
11.3.2.1. 상대 참조 예제¶
다음과 같은 패키지 구조를 가정합니다.
mypackage/
__init__.py
module1.py
subpackage/
__init__.py
module2.py
mypackage안에 있는module1.pydef foo(): print("This is module1")
mypackage/subpackage안에 있는module2.pyfrom ..module1 import foo def bar(): foo() print("This is module2")
mypackage/subpackage/module2.py내부에 있는bar()호출from mypackage.subpackage.module2 import bar bar() # 출력: # This is module1 # This is module2