더북(TheBook)

이제 모듈 객체 wc를 이용할 수 있다.

>>> wc

<module 'wc' from 'wc.py'>

wc 모듈 객체는 linecount를 사용할 수 있다.

>>> wc.linecount('wc.py')

7

이게 파이썬에서 모듈을 작성하는 방법이다.

이 예제의 유일한 문제는 wc 모듈을 임포트할 때 마지막에 있는 테스트 코드가 실행된다는 점이다. 일반적으로 모듈을 임포트할 때는 새 함수를 정의하지, 함수를 실행하지는 않는다.

모듈로 임포트하는 프로그램은 보통 다음과 같은 관례를 사용한다.

if _ _name_ _ == '_ _main_ _':

print(linecount('wc.py'))

_ _name_ _은 프로그램이 시작할 때 설정되는 내장 변수다. 프로그램이 스크립트로 실행 중이면
_ _name_ _'_ _main_ _'을 값으로 갖는다. 이런 경우에는 테스트 코드가 실행된다. 반면에 모듈로 가져온다면 테스트 코드가 생략된다.

연습삼아 이 예제를 wc.py 파일로 입력하고 스크립트로 실행해보자. 이어서 파이썬 인터프리터를 실행하고 import wc로 모듈을 임포트한다. 모듈로 임포트할 때 name의 값은 무엇인가?

 

Warning

이미 가져온 모듈을 다시 임포트하면 파이썬은 아무것도 하지 않는다. 즉, 모듈이 바뀌었어도 파일을 다시 읽어오지 않는다.

모듈을 다시 로드하고 싶다면 내장 함수 reload를 사용해야 하지만, 어려울 수도 있다. 가장 안전한 방법은 인터프리터를 재시작하고 모듈을 다시 임포트하는 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.