파이썬에서 import 구문 이용하기

파이썬에는 import라는 구문이 있습니다.

이 구문은 파이썬에서 모듈을 불러오는 데 쓰이는 구문입니다. 이는 일일이 선언하기 불편한 함수나 변수, 클래스 등을 모아 모듈화한 파일을 불러와서 쓰기 위한 기능입니다. 미리 만들어져 있는 모듈 외에도 사용자가 직접 만들어서 선언하는 것도 가능한데, 다음 코드를 봅시다.

def quicksort(arr, desc = False):
    if len(arr) <= 1: return arr  # only 2 or more
    try:                          # numeric array
        pivot = (max(arr) + min(arr)) / 2
    except TypeError:             # non-numeric array
        i = len(arr) // 2
        pivot = arr[i]            # Below: L/E/G array
    less = []; equal = []; greater = []
    for x in arr:
        if x < pivot:     less.append(x)     # Less than pivot
        elif x == pivot:  equal.append(x)    # Equal to pivot
        elif x > pivot:   greater.append(x)  # Greater than pivot
    if desc:  return quicksort(greater, True) + equal + quicksort(less, True)
    else:     return quicksort(less, False) + equal + quicksort(greater, False)

이 코드는 파이썬으로 퀵 정렬 알고리즘 구현하기 포스트에도 소개되었던 퀵 정렬 함수 선언 코드입니다. 이 코드를 qs.py로 저장하였다고 가정을 하고 또 다음 코드를 봅시다.

import qs

a = [4, 6, 1, 7, 8, 5, 2, 3]
print(qs.quicksort(a) )

1번 줄에서 먼저 qs.py 파일로 저장한 퀵 정렬 모듈을 불러옵니다. 그리고 3번 줄에서 정렬되지 않은 배열 a를 선언하고 4번 줄에서 qs.quicksort(a) 함수의 결과값을 출력합니다. 이는 qs 모듈의 quicksort 함수를 수행하는 것을 의미합니다. 이렇게 하면 별도로 quicksort 함수를 정의하지 않더라도,

[1, 2, 3, 4, 5, 6, 7, 8]

이렇게 qs 모듈에 정의된 퀵 정렬 함수가 수행됩니다.

다른 방법으로, 모듈을 통째로 정의 않고 모듈 안의 특정 함수만 정의하는 방법도 있습니다.

from qs import quicksort

a = [4, 6, 1, 7, 8, 5, 2, 3]
print(quicksort(a) )

이와 같이 from 모듈명 import 함수명 식으로 쓸 수도 있는데 이 예제의 경우 qs.py 파일을 통째로 모듈화하여 정의하지 않고 모듈에 있는 quicksort 함수만 불러오게 됩니다. 또한, 이 경우 4번 줄에서처럼 모듈 이름을 쓰지 않고 함수 이름만 써서 모듈 안에 있는 함수를 수행하게 됩니다. 만약 import 뒤에 함수나 변수의 이름을 쓰지 않고 * 표시를 쓰면 그 모듈 안에 있는 함수와 변수들을 하나씩 모두 불러옵니다.

답글 남기기

이메일 주소는 공개되지 않습니다.