티스토리 뷰

파이썬(python) 모듈(module)의 이해

파이썬(Python)은 인터프리터이지만 매번 대화식 모드에서 입력하면 불편하겠죠. 그래서 파이썬(Python) 코드를 .py 란 확장자로 저장해 놓고 나중에 다시 실행하도록 한 것이 모듈입니다. 즉 모듈(module)은 파이썬(Python)으로 프로그래밍 된 코드가 들어 있는 파이썬(Python) 프로그램 파일이나 C로 만들어진(프로그래밍된) 파이썬(Python) 확장 파일을 말합니다.

모듈의 장점

1. 한번 모듈(module)로 만들어 놓으면 해당 코드는 계속 재사용할 수 있습니다.

2. 모듈 단위로 코드의 개념을 분리해 놓으면 효율성이 높아집니다.

3. 별도의 이름 공간(name space)를 갖는 모듈의 특성상 다른 모듈에 영향을 받지 않고 독립적인 작업을 할 수 있습니다.

모듈의 사용

파이썬(Python)에서 한 모듈(module)에서 다른 모듈(module)을 불러 오려면 import 구문을 사용합니다. 아래에 다양한 모듈 사용 예를 들어 보았습니다.

사용 예제 : import <모듈명>

1. import module_name
2. from module_name import module_attribute
3. from module_name import * 
4. import long_module_name as short_module_name
from django.http import HttpResponse
def hello(request):
    return HttpResponse("Hello world")
import django.http.HttpResponse
def hello(request):
    return HttpResponse("Hello world")

1. module_name.py 모듈(module)을 임포트(import) 합니다.

2. module_name.py 모듈의 속성(attribute) 즉 함수나 클래스를 임포트(import) 합니다.

3. module_name.py 모듈의 모든 속성을 임포트(import) 합니다.

4. 모듈의 이름이 긴 경우 짧은 이름으로 임포트(import) 합니다.

여러 개의 모듈들을 계층별로 묶어서 구조화 한 것을 패키지(Package)라 합니다. 가령 다음과 같은 car 패키지가 있을 수 있겠네요. 한가지 작업에 필요한 부분들을 폴더 별로 묶은 것입니다.

car/
    __init__.py
    handle/
        __init__.py
        dfa.py
        wob.py
    door/
        __init__.py
        soq.py
        wod.py
    wheel/
        __init__.py
        sow.py
        sod.py

생소한 __init__.py 파일은 패키지 초기화를 위한 파이썬 코드가 들어있습니다. 다시 위의 예제로 돌아가서 from django.http import HttpResponse 의 의미는 패키지 django.http 모듈의 HttpResponse 속성 즉 HttpResponse 클래스를 임포트 하라는 의미네요.

정리

파이썬에서 모듈은 미리 작성된 파이썬 프로그래밍 코드이고 이러한 묶음을 패키지라 하며 현재 모듈에서 사용하기 위해서는 import 구문을 사용한다. (참고 : import 구문은 모듈 내에 있는 name들을 현재의 name space로 불러들이는 것과 같은 의미)