점프 투 파이썬 DAY12(모듈)

정지범·2026년 9월 21일

점프 투 파이썬

목록 보기
20/37

05-2 모듈

목차

  • 1. 모듈 만들기

  • 2. 모듈 불러오기

  • 3. if name == "main":의 의미

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

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

  • 6. 다른 디렉터리에 있는 모듈을 불러오는 방법

    • 6-1. sys.path.append 사용하기
    • 6-2. PYTHONPATH 환경 변수 사용하기

1. 모듈 만들기

  • 모듈(Module) 이란 함수, 변수, 클래스 등을 모아 놓은 파이썬 파일이다.
  • 다른 파이썬 프로그램에서 불러와 사용할 수 있다.
  • 직접 만들어 사용할 수도 있고, 다른 사람이 만든 모듈을 사용할 수도 있다.

.py 확장자로 만든 파이썬 파일은 모두 모듈이라고 할 수 있다.

mod1.py 파일을 만들어 보자.

# mod1.py

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

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

mod1.py에는

add() → 두 수를 더하는 함수
sub() → 두 수를 빼는 함수

가 들어 있다.

즉, mod1.py 자체가 하나의 모듈이다.


2. 모듈 불러오기

만들어 놓은 모듈을 사용하려면 import를 사용한다.

import mod1

mod1.py가 아니라 .py를 제외한 mod1만 작성한다.

import mod1

print(mod1.add(3, 4))
print(mod1.sub(4, 2))

실행 결과

7
2

모듈 안의 함수를 사용할 때는

모듈이름.함수이름()

형태로 사용한다.

mod1.add(3, 4)

특정 함수만 불러오기

매번

mod1.add()

처럼 모듈 이름을 붙이지 않고 함수 이름만 사용하고 싶다면 from을 사용할 수 있다.

from mod1 import add

이제 다음과 같이 사용할 수 있다.

add(3, 4)

실행 결과

7

여러 개의 함수를 불러오려면 쉼표로 구분한다.

from mod1 import add, sub
add(3, 4)
sub(4, 2)

모듈의 모든 내용을 불러오려면 *을 사용할 수 있다.

from mod1 import *

*은 모든 것을 의미한다.

정리

import mod1

사용

mod1.add(3, 4)

from mod1 import add

사용

add(3, 4)

from mod1 import add, sub

사용

add(3, 4)
sub(4, 2)

from mod1 import *

모듈의 여러 함수 등을 직접 사용할 수 있다.


3. if __name__ == "__main__":의 의미

mod1.py에 다음 코드를 추가해 보자.

# 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

만 실행해도

5
2

가 출력된다.

왜 그럴까?

import를 하면 해당 모듈의 코드가 실행되기 때문이다.

우리는 add(), sub() 함수만 사용하고 싶은데 아래 코드까지 실행된 것이다.

print(add(1, 4))
print(sub(4, 2))

이를 방지하기 위해 다음과 같이 작성한다.

# 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))

이제

python mod1.py

처럼 mod1.py를 직접 실행하면

5
2

가 출력된다.

하지만 다른 파일에서

import mod1

하면 if문 안의 코드는 실행되지 않는다.


__name__이란?

__name__은 파이썬이 내부적으로 사용하는 특별한 변수이다.

파일을 직접 실행하면

__name__

에는

"__main__"

이 저장된다.

즉,

if __name__ == "__main__":

의 조건이 참이 된다.

반대로 다른 파일에서

import mod1

하면 mod1.py의 __name__에는

"mod1"

이 저장된다.

직접 실행

python mod1.py
      ↓
__name__ = "__main__"
      ↓
if 조건 True
다른 파일에서 import

import mod1
     ↓
__name__ = "mod1"
     ↓
if 조건 False

핵심

if __name__ == "__main__":은 해당 파일을 직접 실행했을 때만 특정 코드를 실행하고 싶을 때 사용한다.


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

모듈에는 함수뿐만 아니라

  • 변수
  • 함수
  • 클래스

등을 함께 넣을 수 있다.

다음과 같이 mod2.py를 만들어 보자.

# mod2.py

PI = 3.141592

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

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

이 모듈에는

PI      → 변수
Math    → 클래스
add()   → 함수

가 들어 있다.


변수 사용하기

import mod2

print(mod2.PI)

실행 결과

3.141592

클래스 사용하기

import mod2

a = mod2.Math()

print(a.solv(2))

실행 결과

12.566368

동작은

PI * (r ** 2)

이므로

3.141592 × (2²)
       ↓
12.566368

이 된다.


함수 사용하기

print(mod2.add(mod2.PI, 4.4))

실행 결과

7.541592

즉, 모듈 안의 요소들은

모듈이름.변수
모듈이름.클래스
모듈이름.함수

형태로 사용할 수 있다.


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

모듈은 파이썬 대화형 인터프리터뿐만 아니라 다른 .py 파일에서도 사용할 수 있다.

예를 들어 같은 폴더에 다음 두 파일이 있다고 하자.

mod2.py
modtest.py

modtest.py

import mod2

result = mod2.add(3, 4)

print(result)

실행 결과

7

즉,

modtest.py
    ↓
import mod2
    ↓
mod2.py의 기능 사용

이 가능하다.

기본적으로 위 예제처럼 사용하려면 modtest.py와 mod2.py가 같은 디렉터리에 있으면 된다.


6. 다른 디렉터리에 있는 모듈을 불러오는 방법

지금까지는 모듈이 현재 작업하는 디렉터리에 있었다.

하지만 모듈이 다른 디렉터리에 있다면 어떻게 해야 할까?

예를 들어 mod2.py가 다음 위치에 있다고 해보자.

C:\doit\mymod\mod2.py

이때 다른 위치에서도 mod2를 불러올 수 있는 방법을 알아보자.


6-1. sys.path.append 사용하기

먼저 sys 모듈을 불러온다.

import sys

sys.path를 확인하면

sys.path

파이썬이 모듈을 찾는 디렉터리 목록을 확인할 수 있다.

즉, 파이썬은 모듈을 import할 때 sys.path에 등록된 위치들을 검색한다.

원하는 디렉터리를 추가해 보자.

sys.path.append("C:/doit/mymod")

이제

import mod2

가 가능하다.

print(mod2.add(3, 4))

실행 결과

7

동작 구조

sys.path
   ↓
파이썬이 모듈을 검색하는 경로 목록

sys.path.append("C:/doit/mymod")
   ↓
새로운 모듈 검색 경로 추가
   ↓
import mod2 가능

6-2. PYTHONPATH 환경 변수 사용하기

다른 방법으로 PYTHONPATH 환경 변수를 사용할 수 있다.

Windows에서는

set PYTHONPATH=C:\doit\mymod

을 설정한 후 파이썬을 실행한다.

python

이제

import mod2

print(mod2.add(3, 4))

를 사용할 수 있다.

실행 결과

7

맥이나 리눅스에서는 set 대신 export를 사용한다.

export PYTHONPATH=~/doit/mymod

PYTHONPATH에 모듈이 있는 디렉터리를 등록하면 해당 디렉터리로 직접 이동하지 않아도 모듈을 불러올 수 있다.


💡 핵심 정리

문법설명
import mod1모듈 전체 불러오기
mod1.add()모듈 안의 함수 사용
from mod1 import add특정 함수 불러오기
from mod1 import add, sub여러 함수 불러오기
from mod1 import *모듈의 여러 요소 불러오기
__name__현재 모듈의 이름을 나타내는 특별한 변수
if __name__ == "__main__":해당 파일을 직접 실행했을 때만 코드 실행
sys.path파이썬이 모듈을 찾는 경로 목록
sys.path.append()모듈 검색 경로 추가
PYTHONPATH모듈 검색 경로를 환경 변수로 지정

모듈 = 다른 파이썬 파일에서 가져다 사용할 수 있는 .py 파일

가장 기본적인 흐름은 다음과 같이 기억하면 된다.

mod1.py 생성
   ↓
함수 / 변수 / 클래스 작성
   ↓
import mod1
   ↓
mod1.함수()

그리고 __name__ 부분은 다음 두 가지만 기억하면 된다.

직접 실행 → __name__ == "__main__"
import 실행 → __name__ == "모듈이름"
profile
성실하자:)

0개의 댓글