본문 바로가기
  • Coding & Book
학습단/Python 학습단

11장 모듈 다루기

by 루이3 2023. 7. 27.

모듈

  • 파이썬에서 서로 관련이 있거나 비슷한 기능을 하는 함수, 클래스를 담고 있는 파일을 제공하는 것을 말합니다.
  • 프로그램의 기능을 독립적인 작은 단위로 나누는 작업을 모듈화라고 합니다.

 

모듈 사용하는 방법

 

& import문

  • 기본적인 방법으로 import문인데 파일명에서 확장자 .py를 제외한 모듈명만 적어주시면 됩니다.

예를 들어 theater_moudle.py 라는 모듈을 만들었을 경우 theater_moudle 이 모듈명입니다.

import theater_moudle

theater_moudle.price(3)
theater_moudle.price_morning(1)

 

위와 같이 긴 이름을 계속 적기에는 효율이 떨어지므로 as를 이용해 아래와 같이 줄일 수 있습니다.

import theater_moudle as mv

mv.price(3)
mv.price_morning(1)

 

 

 

& from ~ import문

  • from 뒤에 모듈명을 적고 모듈에서 가져다 사용할 기능이나 함수를 import 뒤에 적어주면 됩니다.
  • 모듈은 모듈명과 점 없이 모듈의 함수명만 적으면 됩니다.
  • import 뒤에 * 는 모든 기능을 뜻하는것이고 모든 기능이 필요하지 않을 때는 사용하려는 함수명만 적어주시면 됩니다.
from theater_moudle import *

price(3)
price_morning(1)

 

 

패키지

  • 여러 모듈을 모아 놓은 집합을 파이썬에서는 패키지라고 합니다.
  • __init__.py를 넣어 해당 폴더가 패키지라는 것을 명시하기 위해 사용하기도 합니다.
  • 파이썬 3.3 버전 부터는 __init__. py 파일이 없어도 상관없습니다.

travel 패키지

 

패키지 사용 방법

 

& import문

  • 패키지명 뒤에 점을 찍고 모듈명을 적어 import문으로 가져오면 됩니다.
import travel.thailand

trip_to = travel.thailand.ThailandPackage()
trip_to.detail()

 

 

 

&from ~import문

  • 모듈과 비슷합니다.
from travel.thailand import ThailandPackage

trip_to = ThailandPackage()
trip_to.detail()

 

 

 

 

모듈 공개 설정하기

  • __all__ 이라는 변수에 리스트 형태로 모듈명을 넣으면 해당 모듈을 공개로 설정할 수 있습니다.
  • 명시적으로 공개할 식별자들을 지정하면 모듈을 사용하는 사용자에게 모듈의 인터페이스를 명확하게 보여줍니다.
__all__ = ['vietnam"]

 

 

 

 

모듈 직접 실행하기

  • 모듈의 기능이 올바르게 동작하는지 확인하기 위해 사용합니다.
  • 모듈을 직접 실행할지 혹은 별도 파일을 호출해서 실행할지 아래와 같이 구분할수 있습니다.
  • __name__은 현재 모듈(작성한 파이썬 파일) 의 이름을 값으로 가지는 내장 변수입니다.
  • 모듈이 직접 실행되면 __name__ 값은 __main__ 으로 설정됩니다.
if __name__ == "__main__" #직접 실행
	pass
else:	#외부호출
	pass

 

 

 

 

패키지와 모듈 위치 확인하기

  • 모듈의 위치를 확인하기 위해 getfile() 함수를 사용하면 됩니다.
  • getfile() 함수 inspect라는 모듈에 속합니다.
  • 예시로 random 모듈의 위치를 파악하기 위해 아래와 같이 써주시면 됩니다.
import inspect
import random

print(inspect.getfile(random))

'학습단 > Python 학습단' 카테고리의 다른 글

4주차 완료입니다.  (0) 2023.07.28
12장 패키지 설치하기(+실습문제)  (0) 2023.07.28
10장 예외 (finally + 실습문제)  (0) 2023.07.26
10장 예외처리하기  (0) 2023.07.25
9-3장(게임 만들기3)  (0) 2023.07.24