본문 바로가기
Python/기초

[파이썬/Python 기초] 모듈과 패키지를 코드로 직접 구현하기

by 모두의 케빈 2023. 7. 2.

저번 시간에는 모듈, 패키지, 라이브러리, 프레임 워크에 대한 개념을 살펴봤습니다. 이번 시간에는 모듈과 패키지를 직접 코드로 구현하면서 실습해 보는 시간을 갖도록 하겠습니다.

혹시 모듈, 패키지에 대해 잘 모르신다면 아래 링크의 글을 먼저 읽고 오시면 이해하시는데 도움이 될 것 같습니다.

[파이썬/Python 기초] 모듈, 패키지, 라이브러리, 프레임워크의 차이

 

[파이썬/Python 기초] 모듈, 패키지, 라이브러리, 프레임워크의 차이

모듈, 패키지, 라이브러리, 프레임워크의 차이는 무엇일까 모듈이 모이면 패키지가 되고, 패키지가 모이면 라이브러리가 됩니다. 모듈은 프로그램에서 어떤 기능을 하는 작은 단위이자 코드 덩

kevinitcoding.tistory.com

 

 

모듈과 패키지에 대한 코드 실습


먼저 모듈을 만들어 보겠습니다.

 

모듈은 파이썬 파일(.py)입니다. 모듈은 함수와 클래스 등으로 이루어집니다. 저는 덧셈과 뺄셈 함수로 구성되어 있는 간단한 Calculator 모듈을 만들어 보겠습니다. 우선 아래 코드를 쥬피터 노트북으로 작성합니다.

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


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

쥬피터 노트북 파일(.ipynb)을 파이썬 파일(.py)로 변경해 줍니다. 변경하는 방법은 여기를 참고해 주세요.

 

 

만들어진 모듈을 사용해 보겠습니다.

 

참고로 import와 from의 차이에 대해 잘 모르시거나, 언제 사용하는지 궁금하신 분들은 여기를 참고해 주세요.

 

import를 활용하여 Calculator 모듈(.py)을 호출합니다.

# import
import Calculator

a,b = 10, 15
print(Calculator.add(a,b))
print(Calculator.sub(a,b))

from을 활용하여 Calculator 모듈(.py) 내 add, sub 함수를 호출합니다.

# from
from Calculator import add,sub

a,b = 10, 15
print(add(a,b))
print(sub(a,b))

from과 wild import를 활용하여 Calculator 모듈(.py) 내 모든 함수를 호출합니다.

# from with wild import
from Calculator import *

a,b = 10, 15
print(add(a,b))
print(sub(a,b))

 

 

패키지를 만들어 보겠습니다.

 

패키지는 모듈, 즉 파이썬 파일(.py)을 모아두는 폴더이자 디렉토리입니다. 바탕화면에서 폴더를 만들듯이 만드시면 됩니다. 저는 덧셈과 뺄셈을 하는 Calculator 모듈과 name을 출력하는 What_is_your_name 모듈을 Test라는 폴더에 넣어보도록 하겠습니다. 

 

패키지와 모듈

 

참고로 옛날 버전의 파이썬에서는 일반적인 폴더, 디렉토리와 패키지를 구분하기 위해 패키지 안에 "__init__.py" 파일이 있는지를 검사했습니다. (__init__.py에는 아무런 코드 없이 비어있어도 괜찮고, 그냥 폴더 안에 있기만 하면 됨.)

그러나 파이썬 3.3 버전 이상부터는 __init__.py 파일이 없어도 패키지로 인식하도록 변경되었습니다. 따라서 위의 Test 폴더에서 __init__.py을 삭제하더라도 활용하는 데는 아무런 문제가 없습니다. 다만, 과거 버전의 코드와 호환하여 사용할 수 있도록 패키지에는 __init__.py 파일을 넣어두는 것을 권장드립니다. 저 역시 그런 이유로 __init__.py 파일을 넣어두었습니다.

 

 

 

패키지 안의 모듈을 사용해 보겠습니다.

 

import 활용

# import
import Test.Calculator

a,b = 10, 15
print(Test.Calculator.add(a,b))
print(Test.Calculator.sub(a,b))

from 활용

# from
from Test.Calculator import add, sub

a,b = 10, 15
print(add(a,b))
print(sub(a,b))

from과 wild import 활용

# import
from Test.Calculator import *

a,b = 10, 15
print(add(a,b))
print(sub(a,b))

 

 

다음 시간에는 name 변수에 대해 알아보도록 하겠습니다.

 

모듈을 import 하여 사용하면 호출하는 파일과 호출 당하는 파일 사이에 관계가 발생합니다. 현재 프로그래머가 실행 중인 파일이자, 다른 파일을 호출하는 파일을 main 파일이고 하며 이 파일의 이름은 '__main__'입니다.

다음 시간에는 이 name의 개념에 대해 직접 실습하며 알아보도록 하겠습니다.

 

댓글