매번 비슷한 클래스와 함수를 작성한다면 코드도 길어지고 중복되는 부분이 생긴다. 이런 경우에 공통되는 부분을 빼내서 모듈과 패키지로 만들면 된다.

모듈은 간단한 기능을 담을 때 사용하며, 패키지는 코드가 많고 복잡할 때 사용한다. 즉, 패키지는 기능들이 모듈 여러개로 잘개 나누어져 있고, 관련된 모듈끼리 폴더에 모여있는 형태다.

모듈 만들기

간단하게 2의 거듭제곱을 구하는 모듈을 만들어보자. "square2.py"라는 이름으로 파일을 하나 만들어준다.

base = 2

def square(n):
    return base ** n

모듈 사용하기

방금 만든 모듈을 사용해보자 "main.py"를 만들고 다음과 같이 작성한다. 둘은 같은 폴더안에 있어야한다.

import square2
print(square2.base)
print(square2.square(10))
2
1024

이 외에 from import를 사용하는 방법은 이전 챕터와 같다.

모듈과 시작점 알아보기

인터넷에 있는 파이썬 코드를 보다 보면 다음과 같은 코드를 많이 볼 수 있다.

if __name__ == '__main__':
    # 코드

이 코드는 현재 스크립트 파일이 실행되는 상태를 파악하기 위해 사용된다.

다음 파일들을 각각 hello.py, main.py로 저장하고 실행한다.

print('hello 모듈 시작')
print('hello.py __name__:', __name__)
print('hello 모듈 끝')
import hello
print('main.py __name__:', __name__)
hello 모듈 시작
hello.py __name__: hello
hello 모듈 끝
main.py __name__: __main__