본문 바로가기
Python/Python 기초

[파이썬완전기초]모듈과 패키지

by 찐남 2021. 7. 27.
본 포스팅은 2021 NIPA AI 온라인 무료 교육의 AI 실무 기본 과정을 기반으로 작성하였습니다.

 

1. 모듈


프로그램 코딩을 하다보면, 코드의 길이가 길어지는 상황이 발생합니다. 자신이 원하는 프로그래밍을 위해 모든 함수와 변수를 생성하는 데에 한계가 있습니다. 파이썬에는 여러 개발자들이 이미 만들어 놓은 여러 함수와 변수가 있습니다. 우리는 이렇게 생성되어 있는 많은 함수와 변수를 가져다 사용하면 됩니다. 이처럼 개발자들이 만들어 놓은 특정 목적을 가진 함수, 자료의 모임을 모듈이라고 합니다.



1.1. 모듈 사용하기


모듈을 사용하기 위해서는 import 키워드를 사용할 수 있습니다. import는 '불러오다' 라는 뜻입니다. 즉, import 모듈 이라고 표현하면, 모듈을 불러오라는 의미로 이해하시면 됩니다.

import numpy # numpy 라는 모듈을 불러오라는 의미
import random # random 이라는 모듈을 불러오라는 의미

 

1.2. 모듈 사용법 확인하기


모듈을 사용하는 방법은 사용하고자 하는 모듈을 적고, 점(.)을 찍어 구분하고, 뒤에 함수 혹은 변수를 작성하시면 됩니다. 아래 예제를 보겠습니다.

random.randrange(start, stop)


위의 명령문은 random이라는 모듈인데 randrange 함수를 사용하는 예제입니다. randrange(start, stop) 함수는 start 이상 stop 미만의 정수 중 임의로 하나의 숫자를 반환해 주는 함수입니다.

import random
print(random.randrange(0,3))

파이썬 출력결과 -> 2 # 임의의 값이기 때문에 실행될 때마다 값이 변경될 수 있음


첫번째 문장은 random 이라는 모율을 불러오는 명령문입니다. 두번째 문장은 random 모듈의 randrange 함수를 사용해서 0과 3미만의 정수 중 임의로 숫자 하나를 생성해서 출력하라는 명령문입니다.

1.3. 모듈 생성하기


여러분들이 필요로 하는 모듈도 얼마든지 생성할 수 있습니다. 확장자 py를 가지는 파일로 생성됩니다. 그럼 모듈을 생성하고, 생성한 모듈을 불러와서 사용하는 예제를 생성해 보겠습니다. 우선, 2개의 인수를 받아 서로 곱한 결과를 반환하는 함수를 생성하고, 해당 파일을 저장해 보겠습니다.

  def add(x, y) :
__z = x * y
__return z  


위의 코드를 작성한 후, add_exercise 라는 파일명으로 저장합니다(확장자는 .py).

이제 새로운 파이썬 프로그램 창을 열어서 아래와 같이 작성합니다. 이는 add_exercise 라는 모듈을 불러오라는 명령문입니다.

import add_exercise


자! 그럼 5, 10을 인수로 받아 50을 계산하는 데, 위의 모듈을 사용해 보겠습니다.

import add_exercise
print(add_exercise.add(5,10))


위의 명령문을 수행하면 5*10의 결과인 50이 출력됩니다.

 



2. 패키지


패키지는 모듈을 폴더형태로 구분하여 관리하는 꾸러미로 이해하시면 됩니다. 즉, 모듈을 편리하게 사용하기 위해서 종류가 유사한 모듈을 한 데 묶어서 관리를 하는 겁니다. 그럼 임의의 패키지안에 있는 특정 모듈의 함수를 사용할려면 어떻게 해야 할까요?

2.1. 패키지 속 모듈 사용하기


사용법은 크게 2가지가 있습니다. 예를 들어, 'add_exer' 라는 모듈('add' 라는 함수 존재)이 'pkg' 라는 패키지 안에 있다면, 해당 함수를 사용하시고자 한다면 아래와 같이 표현하시면 됩니다.

import pkg.add_exer
print(add_exer.add(5,10))


다른 한가지 방법은 from - import 구문을 사용할 수 있습니다. 아래와 같이 표현하시면 되고, 결과는 위의 명령문과 동일합니다.

from pkg.add_exer import add
print(add(5*10))


add를 add_exer.add 라고 적어주지 않아도 됩니다.

이상 모듈과 패키지에 대해서 살펴 보았습니다. 다음은 데이터 핸들링에 많이 사용되는 numpy 모듈에 대해서 살펴 보도록 하겠습니다.



반응형

댓글