본문 바로가기

연구노트/Python

파이썬 모듈

 

파이썬 모듈

 

 

모듈이란?
 

함수나 변수 또는 클래스를 모아 놓은 파일이다.

모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고도 할 수 있다.

파이썬으로 프로그래밍을 할 때 굉장히 많은 모듈을 사용한다.

다른 사람이 만들어 놓은 모듈을 사용할 수도 있고 직접 만들어서 사용할 수도 있다.

모듈을 어떻게 만들고 사용할 수 있는지 알아보자.

 

모듈만들기

 

모듈에 대해 자세히 살펴보기 전에 간단한 모듈을 한번 만들어 보자.

## 모듈 만들기
# mod1.py
def add(a, b):
     return a + b

def sub(a, b):
     return a - b
 

위와 같이 add와 sub 함수만 있는 파일 mod1.py를 만들고 C:\ipmes1 디렉토리에 저장하자.

이 mod1.py 파일이 바로 모듈이다. 지금까지 에디터로 만들어 온 파일과 다르지 않다.

 

모듈 불러오기

우리가 만든 mod1.py 파일, 즉 모듈을 파이썬에서 불러와 사용하려면 어떻게 해야 할까?

먼저 다음과 같이 명령 프롬프트 창을 열고 mod1.py를 저장한 디렉터리(C:\ipmes1)로 이동한 다음

대화형 인터프리터를 실행한다.

## 모듈 불러오기
PS C:\Users\ipmes> cd C:\ipmes1  # mod1.py 저장한 디렉터리로 이동
PS C:\ipmes1> dir
...
-a----  2025-04-18   오후 1:00   81 mod1.py  # 디렉터리에 파일이 있는지 확인
...
PS C:\ipmes1> python  # 대화형 인터프리터 실행
import mod1
print(mod1.add(3,4))
→ 7
print(mod1.sub(4,2))
→ 2
 

반드시 mod1.py를 저장한 C:\ipmes1 디렉터리로 이동한 다음 예제를 진행해야 한다.

그래야만 대화형 인터프리터에서 mod1.py를 읽을 수 있다.

mod1.py를 불러오기 위해 'import mod1'이라고 입력하였다. 실수로 확장자인 '.py'를 입력하지 않도록 유의한다.

import는 이미 만들어 놓은 파이썬 모듈을 사용할 수 있게 해주는 명령어이다.

mod1.py 파일에 있는 add함수를 사용하기 위해서는 'mod1.add'처럼 이름뒤에 '.'를 붙이고 함수 이름을 쓰면 된다.

 

 

만약 mod1.add, mod1.sub처럼 쓰지 않고 add, sub처럼 모듈 이름 없이 함수 이름만 쓰고 싶은 경우도 있을 것이다.

이때는 'from 모듈 이름 import 모듈 함수'를 사용하면 된다. 아래 예시를 참조하자.

## 모듈 사용 예제
from mod1 import add
add(3, 4)
→ 7
 

그런데 위와 같이 하면 mod1.py 파일의 add 함수만 사용할 수 있다.

add 함수와 sub 함수를 둘 다 사용하고 싶다면 어떻게 해야할까?

첫 번째는 'from mod1 import add, sub'를 사용하면 된다. 콤마(,)로 구분하여 필요한 함수를 불러올 수 있다.

두 번째는 'from mod1 import *'를 사용하는 것이다. '*'문자는 '모든 것'이라는 뜻을 나타내므로 모든 함수를 불러서 사용한다.

## 모듈 사용 예제2
from mod1 import add, sub
add(3, 4)
→ 7
sub(4, 2)
→ 2
from mod1 import *
add(3, 4)
→ 7
sub(4, 2)
→ 2
 

 

if __name__ == "__main__": 의 의미

이번에는 mod1.py 파일을 다음과 같이 변경해 보자.

add(1, 4)와 sub(4, 2)의 결과를 출력하는 다음 문장을 추가하였다.

 

## if __name__ == "__main__":의 의미
# mod1.py
def add(a, b):
     return a + b

def sub(a, b):
     return a - b
print(add(1,4))
print(sub(4,2))
 

위에서 작성한 파일을 실행하면 5와 2의 값을 출력하는 것을 볼 수 있다.

하지만, 모듈을 import할 때는 이상한 문제가 생긴다. 바로 mod1.py가 실행이 되어 결괏값을 출력한다.

이 문제를 방지하기 위해 다음과 같이 수정해야 한다.

## if __name__ == "__main__":의 의미
# mod1.py
def add(a, b):
     return a + b

def sub(a, b):
     return a - b

if __name__ == "__main__":
     print(add(1,4))
     print(sub(4,2))
 

if __name__ == "__main__"을 사용하면 'C:\ipmes1> python mod1.py'처럼 직접 이 파일을 실행했을 때는

__name__ == "__main__"이 참이 되어 if문 다음 문장을 수행한다.

반대로 대화형 인터프리터나 다른 파일에서 이 모듈을 불러서 사용할 때는 __name__ == "__main__"이 거짓이 되어

if문 다음 문장을 수행하지 않는다.

 

클래스나 변수 등을 포함한 모듈

지금까지 살펴본 모듈은 함수만 포함했지만 클래스나 변수 등을 포함할 수도 있다. 다음 프로그램을 작성해 보자.

## 클래스, 함수, 변수 포함 모듈
# mod2.py
PI = 3.141592

class Math:
    def solv(self, r):
        return PI * (r ** 2)

def add(a, b):
    return a + b
 

이 파일은 원의 넓이를 계산하는 Math 클래스와 두 값을 더하는 add 함수 그리고 원주율 값에 해당하는 PI 변수처럼

클래스, 함수, 변수 등을 모두 포함하고 있다.

파일 이름은 mod2.py로 하고 C:\ipmes1 디렉터리에 저장하자. 대화형 인터프리터를 열고 다음과 같이 작성해 보자.

## 클래스, 함수, 변수 포함 모듈
PS C:\Users\ipmes> cd C:\ipmes1
PS C:\ipmes1> python
import mod2
print(mod2.PI)
→ 3.141592
a = mod2.Math()
print(a.solv(2))
→ 12.566368
print(mod2.add(mod2.PI, 4.4))
→ 7.541592
 

위 예에서 볼 수 있듯이 mod2.PI처럼 입력해서 mod2.py 파일에 있는 PI 변수 값을 사용할 수 있다.

mod2.py에 있는 Math 클래스를 사용하는 방법은 '.'로 클래스 이름 앞에 모듈 이름을 먼저 입력해야 한다.

add 함수 역시 사용할 수 있음을 볼 수 있다.

 

다른 파일에서 모듈 불러오기

지금까지는 만들어 놓은 모듈 파일을 사용하기 위해 대화형 인터프리터만 사용했다.

이번에는 다른 파이썬 파일에서 이전에 만들어 놓은 모듈을 불러와서 사용하는 방법을 알아보자.

여기에서는 조금 전에 만든 모듈인 mod2.py 파일을 다른 파이썬 파일에서 불러와 사용할 것이다.

먼저 에디터로 C:\ipmes1\modtest.py 파일을 다음과 같이 작성한다.

## 다른 파일에서 모듈 불러오기
# modtest.py
import mod2
result = mod2.add(3, 4)
print(result)
 

위 예에서 볼 수 있듯이 다른 파이썬 파일에서도 import mod2로 mod2 모듈을 불러와 사용할 수 있다.

예제가 정상적으로 실행되기 위해서는 modtest.py 파일과 mod2.py 파일이 동일한 디렉터리(C:\ipmes1)에 있어야 한다.

 

 

 

이번 연구 주제는 파이썬의 모듈에 대해서 알아보았다.

모듈의 역할은 복잡한 코드를 분할해서 편리하게 사용하는 것에 장점을 보인다.

 

 

 

'연구노트 > Python' 카테고리의 다른 글

Python 예외 처리  (0) 2025.04.30
파이썬 패키지  (0) 2025.04.21
Python 클래스  (0) 2025.04.17
Python 파일 읽고 쓰기  (0) 2025.04.16
Python의 함수  (0) 2025.04.16