
파이썬 모듈
파이썬에선 파이썬 파일 (보통 파일 확장자가 py인 파일) 하나 하나가 파이썬 모듈이다.
하나의 파이썬 파일에서 다른 파이썬 파일, 즉 파이썬 모듈 내에 정의되어 있는 코드(변수나 함수, 클래스 등등)는 키워드 import로 대상 파이썬 모듈을 불러온 후 사용한다.
예를 들어 다음과 같이 파이썬 파일 my_module1.py 내에 함수 hello_my_module1이 정의되어 있다면,
print(__name__)
def hello_my_module1():
print('Hello My Module 1')
아래와 같이 파이썬 모듈 my_module1은 키워드 import로 불러올 수 있다.
키워드 import로 불러온 파이썬 파일 내 코드는 <파이썬 모듈 이름> + <.> 형식으로 접근할 수 있다.
즉, 파이썬 모듈 my_module1 내에 정의되어 있는 함수 hello_my_module1은 my_module1.hello_my_module1()으로 호출할 수 있다.
import my_module1
print(__name__)
my_module1.hello_my_module1()

변수 __name__은 파이썬이 기본적으로 제공하는 변수로 변수 __name__엔 모듈의 이름 정보가 문자열 형태로 저장되어 있다.
위의 코드를 실행한 결과에서 다음의 두 가지를 알 수 있다.
1. 키워드 import로 임의 파이썬 모듈을 불러오면, 해당 시점에 해당 파이썬 모듈이 실행됨을 의미한다.
2. 파이썬 변수 __name__은 파이썬 파일이 실행되는지 아니면 키워드 import에 의해 불려지는지에 따라 그 값이 다른다. 만약 파이썬 파일이 import가 아닌 실행의 대상이면, 변수 __name__의 값은 "__main__"이다.
파이선 모듈을 불러올 때 키워드 as로 사용할 파이썬 모듈 이름을 변경할 수 있다.
import my_module1 as mm1
mm1.hello_my_module1()
파이썬 모듈 my_module1.py 파일이 다음과 같을 때, 키워드 from과 import를 함께 사용하면 파이썬 모듈에서 원하는 코드만 불러와 사용할 수 있다. 이 경우 불러온 파이썬 모듈의 함수 호출 시 모듈 이름은 붙이지 않아도 된다.
print(__name__)
def hello_my_module1():
print('Hello My Module 1')
def hello_world1():
print('Hello World 1')
def hello_world2():
print('Hello World 2')
from my_module1 import hello_my_module1, hello_world1
hello_my_module1()
hello_world1()
만약 파이썬 모듈 내 모든 코드를 사용하고자 한다면, 애스터리크 *를 사용하면 된다.
from my_module1 import *
불러올 파이썬 모듈이 여러 폴더에 저장되어 있다면, 아래와 같은 방식으로 파이썬 모듈을 불러온다.

import my_module1
import my_modules.my_module2
import my_modules.generic.my_module3
my_module1.hello_my_module1()
my_modules.my_module2.hello_my_module2()
my_modules.generic.my_module3.hello_my_module3()
하나의 파이썬 파일에서 파이썬 모듈을 여러 번 import해도 해당 파이썬 모듈은 한번만 실행이 된다.
import my_module1
import my_module1
import my_module1
import my_module1
import my_module1
print(__name__)

'코딩 > 파이썬 기초' 카테고리의 다른 글
| 파이썬 튜토리얼 036. 텍스트 파일 쓰기 (0) | 2021.08.03 |
|---|---|
| 파이썬 튜토리얼 035. Formatted String Literals와 str.format() 메서드 (0) | 2021.08.02 |
| 파이썬 튜토리얼 033. 시퀀스 타입 데이터의 비교 (0) | 2021.07.28 |
| 파이썬 튜토리얼 032. for 문에서 내장 함수 enumerate() 사용 (0) | 2021.07.24 |
| 파이썬 튜토리얼 031. 기본 데이터 타입, 딕셔너리 (dict) (0) | 2021.07.22 |