15. 모듈(module)과 패키지(package), import > 파이썬 기초

본문 바로가기
사이트 내 전체검색

회원로그인

올서베이넷
무료 온라인 설문 사이트
OVITII
웹 프레젠테이션 도구

파이썬 기초

15. 모듈(module)과 패키지(package), import

페이지정보

글쓴이 관리자 조회 45,593 조회 날짜 19-05-28 15:08 / Update:19-05-28 16:57
댓글 0 댓글

SNS 공유

  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

내용

모듈(module)과 패키지(package)

 

모듈(module)

 

모듈은 함수나 클래스들을 모아놓은 파일이다.

 

우리가 파이썬을 시작할 때, py확장자를 가진 파일을 하나 만든다. 만약 test.py라는 파일을 만들었다면 test.py 파일이 하나의 모듈이 된다.

 

앞서서 파이썬을 공부하면서 함수나 클래스들을 만들었었다. 이것이 모듈안에 든 함수나 클래스가 된다. 

 

프로그래밍을 할 때, 필요한 기능들은 만들어서 사용한다. 그리고 반복되는 기능들은 함수나 클래스로 만들어서 사용한다.

 

만약 다른 사람들이 만든 좋은 기능을 가진 함수나 클래스가 있다면 그것을 가져와서 사용할 수 있다. 즉, 모듈을 불러와서 사용할 수 있다.

 

우선 모듈을 만들어보자. 모듈을 만든다고 해서 별다른 것이 있는 것이 아니고 이때까지 해왔던 것처럼 파이썬 파일을 만들면된다.

 

모듈을 불러오는 것을 테스트 하기 위해서 두 개의 파일을 만든다. moduletest1.py 와 moduletest2.py 파일을 만든다.

 

moduletest1.py

import math


def distance(x1, y1, x2, y2):
    result = math.sqrt( math.pow(x1 - x2, 2) + math.pow(y1 - y2, 2))
    return result

 

파이썬 파일을 만들어서 코드를 입력하였다.

 

import math

 

모듈을 사용하기 위해서 불러오는 코드이다. math라는 모듈을 import 한다는 의미다. 

math는 파이썬에 내장되어 있는 모듈(라이브러리)이다. 모듈은 이미 있는 것, 다른 사람이 만든 것, 내가 만든 것 어느것이라도 import해서 사용할 수 있다.

 

def distance(x1, y1, x2, y2):
    result = math.sqrt( math.pow(x1 - x2, 2) + math.pow(y1 - y2, 2))
    return result

 

두 점과 점 사이의 거리를 구하는 코드이다. 

점과 점사이의 거리는 좌표상에서 두 점을 피타고라스의 정리에 의해 a ** 2 = b ** 2 + c ** 2를 풀어서 답을 얻는 식이다.

자세한 설명은 https://www.jbmpa.com/python_tip/10 에서 확인한다.

 

3109821002_1559079946.8256.png
 

 

moduletest2.py

import moduletest1


a = moduletest1.distance(2, 3, 4, 5)

 

print(a)

2.8284271247461903

 

moduletest1 이라는 모듈을 만들었으면, moduletest1을 불러오는 모듈을 만든다.

새로 만든 moduletest2에서 moduletest1을 import 한다.

 

import moduletest1

 

moduletest1 을 import 했으면, 모듈.함수 형태로 모듈의 함수를 사용할 수 있다.

 

moduletest1.distance(2, 3, 4, 5)

 

점 1(x1, y1), 점 2(x2, y2)의 좌표가 각각 x1, y1 = (2, 3) / x2, y2 = (4, 5) 라고 가정했을 때, 두 점의 거리를 구하기 위해 모듈의 distance 함수를 이용한다.

 

우리가 이전에 같은 파일 내부에서 클래스를 만들고 함수를 만들어서 사용하였다. 모듈도 마찬가지 방법으로 사용한다. 다만 다른 파일에 있는 코드들을 사용하는 것이므로 모듈을 사용하기 전에 import만 해주면 된다.

 

3109821002_1559079929.4258.png

 

 

 

패키지(package)

 

패키지는 여러 개의 모듈(파일)을 모아놓은 것이라고 생각하면 된다.  파일 구조로 본다면 하나의 폴더에 들어있는 파일들의 모임이다.

 

패키지를 만들때는 폴더를 만들어서 넣어도 되고, 이클립스에서 패키지를 만들어서 파일들을 모아넣어도 된다.

 

3109821002_1559077033.5878.png

 

패키지내부의 모듈들을 불러올때는 import 패키지명.모듈명 과 같이 불러온다.

 

만약 lecture 패키지내의 moduletest.py 모듈을 불러온다면, 아래와 같이 사용할 수 있다.

 

import lecture.moduletest

 

 

 

그 외 모듈 불러오는 방법

 

1. 모듈 이름 따로 지정하기

 

import 모듈 이름 as 새로운 이름

 

import moduletest1 as m

a = m.sqrt(4)

 

 

2. 모듈 내부의 일부만 불러오기

 

from 모듈 이름 import 불러올 함수(클래스, 변수)

 

from moduletest1 import distance

a = distance(2,3,4,5)

 

 

3. 모듈 내부의 일부를 이름 지정하여 불러오기

 

from 모듈 이름 import 불러올 함수(클래스, 변수) as 새로운 이름

 

from moduletest1 import distance as d

a = d(2,3,4,5)

 

 

 

 

댓글목록 sfs

총 4 건 , 1 페이지
게시물 검색
파이썬 기초 목록
번호 제목 글쓴이 조회 날짜
1 관리자 37751 05-02
2 관리자 48044 05-02
3 관리자 35080 05-06
열람중 관리자 45594 05-28
GNUBOARD_M
Copyright © JBMPA.com All rights reserved.