Download presentation
Presentation is loading. Please wait.
1
빠르게 활용하는 파이썬3 프로그래밍 Chapter 6. 모듈
2
모듈 여러 코드를 한데 묶어 다른 곳에서 재사용할 수 있는 코드 모음 모듈 사용하기 모듈 만들기 모듈의 경로 모듈 임포트
모듈 임포트 파헤치기 유용한 팁 패키지
3
모듈 사용하기 현재 파이썬 3.0 버전에서는 대략 200개가 넘는 모듈을 지원 간단하게 모듈을 사용 할 수 있음
문자열(string), 날짜(date), 시간(time), 십진법(decimal), 랜덤(random) 파일(file), os, sqlite3, sys, xml, , http 등등 간단하게 모듈을 사용 할 수 있음 모듈을 사용하는 이유 코드의 재 사용성 코드를 이름공간으로 구분하고 관리 할 수 있음. 복잡하고 어려운 기능을 포함하는 프로그램을 간단하게 만들 수 있다.
4
모듈 import import : 모듈을 현재 이름공간으로 가져오는 역할
math 모듈은 삼각함수, 제곱근, 로그함수 등 수학과 관련된 기능이 들어 있는 내장 모듈. dir() 함수를 이용해 모듈에 어떠한 함수 혹은 데이터가 들어 있는지 알 수 있다. >>> import math >>> math.pow(2, 10) >>> math.pi >>> dir(math) ['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh‘,'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh‘, …
5
간단한 FTP 프로그램 FTP로 서버에 접근해 파일 리스트를 가져오는 프로그램.
>>> from ftplib import FTP >>> ftp = FTP('ftp.cwi.nl') >>> ftp.login() '230 Login successful.' >>> ftp.retrlines('LIST') drwxrwsr-x 2 ftp ftp 512 Jan DIENST drwxr-xr-x 2 ftp ftp 512 Nov incoming -rw-r--r-- 1 ftp ftp 1810 Jul incoming.readme lrwxrwxrwx 1 ftp ftp 1 Nov people -> . dr-xr-xr-x 75 ftp ftp 1536 Feb 04 07:16 pub drwxrwsr-x 10 ftp ftp 512 Nov sigchi -r--r--r-- 1 ftp ftp 2195 May welcome.msg '226 Directory send OK.' >>>ftp.quit() '221 Goodbye.'
6
모듈 만들기 사용자가 직접 모듈을 만들 수 있다. 큰 프로젝트의 경우 모듈 단위로 일을 진행 하기도 함.
모듈은 일반적으로 <모듈이름>.py 으로 지정합니다.
7
simpleset 모듈 만들기 텍스트 에디터를 이용해 교집합, 차집합, 합집합 함수를 만듭시다.
simpleset.py 이름으로 저장하고 simpleset.py를 파이썬 라이브러리 디렉터리에 옮깁니다. import 명령을 이용해 simpleset 모듈을 가지고 옵니다. >>> import simpleset 합집합 구하기 >>> setA = [1, 3, 7, 10] >>> setB = [2, 3, 4, 9] >>> simpleset.union(setA, setB) [1, 3, 7, 10, 2, 4, 9]
8
모듈의 경로 모듈을 임포트 했을 때 모듈의 위치를 검색하는 경로 모듈의 경로 밖의 모듈은 임포트 할 수 없음
sys.path 에 저장되어 있는 디렉토리를 검색한다. 모듈의 경로 밖의 모듈은 임포트 할 수 없음 모듈 경로 탐색 순서. 프로그램이 실행된 디렉터리 PYTHONPATH 환경 변수에 등록된 위치 표준 라이브러리 디렉터리
9
모듈 임포트 모듈 안의 어트리뷰트 (함수, 데이터)들을 사용하려면 임포트를 해야 한다.
Import 구문은 어디에서나 사용 가능 하다. 함수, 제어문 내부에서도 import를 할 수 있다. Import <모듈이름> 기본적인 임포트 방법 모듈.이름 형식으로 모듈 안의 데이터나 함수를 사용 할 수 있다. 모듈은 임포트 하는 방법은 import 모듈이름 방법 이외에도 다른 방법이 있다.
10
모듈 임포트 방법 from <모듈> import <어트리뷰트>
>>> from simpleset import union >>> union([1, 2, 3], [3], [3, 4]) [1, 2, 3, 4] from <모듈> import * import <모듈> as <별칭> <모듈> 이름을 <별칭>으로 변경하여 임포트합니다.
11
모듈 임포트 파헤치기 임포트를 할 때, 해당 모듈의 바이트 코드가 있으면 이를 임포트 한다.
모듈을 임포트 하면 해당 모듈의 코드가 실행된다. 모듈이 임포트되면 메모리에 모듈 코드가 로딩되면 프로그램이나 파이썬 인터프리터가 끝나기 전까지 변경되지 않는다.
12
바이트 코드 일종의 중간 파일 모듈의 임포트를 빠르게 해주는 역할
바이트 코드가 이미 있으면 : 모듈을 인터프리팅(Interpreting) 하지 않고 바로 바이트 코드 로딩 바이트 코드가 없으면 : 모듈을 인터프리팅 해서 바이크 코드를 생성 바이트 코드가 생성된 모습
13
모듈이 메모리에 로딩 될 때 모듈의 코드가 실행 됨 처음 임포트 할 때 “print” 구문이 실행된다.
한 번 메모리에 로딩된 모듈은 끝나기 전 까지 변하지 않는다.
14
유용한 팁 모듈이 직접 실행 혹은 다른 곳에서 임포트 되었는지를 구분 해 줄 수 있는 __name__ 어트리뷰트
모듈이 직접 실행 되었을 때 __name__은 “__main__”
15
패키지 모듈의 모음 파이썬의 모듈 이름공간을 구조화 하는 한 방법 파이썬 내장 라이브러리 중 XML 패키지의 디렉터리 구조
16
감사합니다.
Similar presentations