본문 바로가기
교재 리뷰/뇌를 자극하는 파이썬3

뇌를 자극하는 파이썬3 - 8. 모듈과 패키지

by 펄서까투리 2019. 10. 25.

# 세줄요약 #

1. 모듈(module)은 독자적인 기능을 갖는 구성 요소를 의미하는데 파이썬에서는 각각의 소스파일을 의미한다.

- 사용법: import 키워드를 사용하여 자신 또는 다른 프로그래머가 만든 소스파일을 불러와서 사용할 수 있다.

#code block#

# 모듈 약자를 사용하는 방법
import module as mod
mod.function()

# 모듈의 특정 함수만 불러오는 방법
from module import function
function()

- 모듈의 종류

  • 표준 모듈: 파이썬에 내장된 자체모듈
  • 사용자 생성 모듈: 프로그래머가 직접 작성한 모듈
  • 서드파티 모듈: 다른 프로그래머 또는 업체가 제공한 모듈

 

2. 파이썬은 최상위 수준에서 실행되는 스크립트가 있을뿐 메인함수가 따로 없기에 현재 실행되는 스크립트(최상위 수준 스크립트)가 메인 모듈이 된다.

- 파이썬 내장 전역 변수 __name__을 사용하면 모듈이 최상위 수준으로 실행될 때, __name__변수가 __main__으로 지정된다.

#code block# : [sub.py]

print('this is sub.py')
print('name = {}'.format(__name__))
#code block# : [main.py]

import sub

print('this is main.py')
print('name = {}'.format(__name__))

- 위 모듈에서 main.py를 실행시키면 결과는 아래와 같다.

this is sub.py
name = sub
this is main.py
name = __main__

- 처음 두줄은 import sub을 통해 sub.py 모듈의 코드가 실행된 것이고, 아래 두줄은 main.py의 코드가 실행된 결과이다.

- 어떤 코드를 최상위 수준일 때만 실행되도록 하고 싶다면  if __name__ == '__main__':  을 사용하면 된다.

 

3. 패키지: 모듈을 모아두는 디렉토리, 패키지화 되면 라이브러리처럼 사용할 수 있다.

- 모듈의 수가 늘어날 경우 모듈의 이름이 충돌하거나 찾기 어렵지 않도록 디렉토리를 만든 후 패키지화 시켜야 한다.

- 이때 파이썬의 패키지로 인정 받으려면 해당 디렉토리에 __init__.py 파일을 가지고 있어야 한다.

* 예를 들어, my_module이라는 패키지를 만들려면,

/my_module

> __init__.py

> func1.py

> func2.py

> func3.py

#code block# : [__init__.py]

__all__ = ['func1', 'func2', 'func3']

- 위와 같이 __init__.py 파일을 만들고 패키지 안의 모듈리스트를 __all__ 변수 안에 담아줘야 한다.

 

 

* 출처: 뇌를 자극하는 파이썬3 / 박상현 / 한빛미디어

728x90
728x90

댓글