import 문을 사용한 모듈 가져오기
모듈을 사용하는 가장 일반적인 방법은 import 문을 사용하는 것입니다. 이렇게 하면 모듈 내의 모든 코드가 현재 스크립트에서 사용 가능해집니다.
파일 탐색기에서 main.py라는 빈 파일을 찾을 수 있습니다. 이 파일이 나머지 실습 동안 사용할 메인 스크립트가 될 것입니다.
main.py를 열고 hello 모듈을 가져오기 위해 다음 줄을 추가하세요.
import hello
print("The main.py script has finished.")
파일을 저장합니다. 이제 터미널에서 main.py를 실행합니다.
python3 main.py
출력을 주의 깊게 관찰하세요.
This code runs on import or direct execution.
The main.py script has finished.
hello.py의 첫 번째 print 문만 실행되었음을 알 수 있습니다. if __name__ == "__main__": 블록 안의 코드는 건너뛰어졌습니다. 이는 main.py가 hello를 가져올 때, hello.py 컨텍스트 내의 __name__ 변수가 "__main__"이 아닌 모듈 이름인 "hello"로 설정되기 때문입니다. 이 기능은 가져올 때 원치 않는 부수 효과 (side effects) 를 발생시키지 않는 재사용 가능한 모듈을 만드는 데 필수적입니다.
이제 단순히 print 문만 포함하는 것이 아닌, 더 많은 내용을 담고 있는 모듈을 다뤄보겠습니다. module_a.py 파일을 여세요. 이 파일에는 변수, 함수, 클래스가 포함되어 있습니다.
PI = 3.14159
def greet(name):
print(f"Hello, {name} from module_a!")
class Calculator:
def add(self, x, y):
return x + y
main.py를 수정하여 module_a를 가져오고 그 구성 요소들을 사용해 봅시다. 가져온 모듈의 구성 요소에 접근하려면 모듈이름.구성요소이름(module_name.member_name) 구문을 사용합니다.
main.py의 내용을 다음으로 대체하세요.
import module_a
## Access the PI variable
print(f"The value of PI is {module_a.PI}")
## Call the greet function
module_a.greet("LabEx")
## Create an instance of the Calculator class and use its method
calc = module_a.Calculator()
result = calc.add(5, 3)
print(f"5 + 3 = {result}")
파일을 저장하고 실행합니다.
python3 main.py
출력 결과는 다음과 같습니다.
The value of PI is 3.14159
Hello, LabEx from module_a!
5 + 3 = 8
이는 import 문이 전체 모듈을 로드하는 방법과, 모듈 이름을 접두사로 사용하여 해당 모듈의 내용에 접근하는 방법을 보여줍니다.