패키지 상대참조 절대참조
Contents
11.3. 패키지 상대참조 절대참조¶
파이썬에서 모듈과 패키지를 임포트할 때, 절대 경로 또는 상대 경로를 사용할 수 있습니다.
각 방법의 사용법과 장단점을 이해하면 더 효율적으로 코드를 작성할 수 있습니다.
11.3.1. 절대 참조¶
절대 참조는 모듈의 전체 경로를 사용하여 모듈을 임포트하는 방법입니다.
모듈의 위치와 상관없이 항상 같은 방법으로 모듈을 참조할 수 있게 합니다.
11.3.1.1. 절대 참조 예제¶
다음과 같은 패키지 구조를 가정합니다.
mypackage/
__init__.py
module1.py
subpackage/
__init__.py
module2.py
mypackage
안에 있는module1.py
def foo(): print("This is module1")
mypackage/subpackage
안에 있는module2.py
from 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.py
def foo(): print("This is module1")
mypackage/subpackage
안에 있는module2.py
from ..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