6. 모듈, 패키지, 프로그램

2016. 10. 23. 03:28Programming Languages/PYTHON

이전까지는 파이썬 기본 대화식 인터프리터를 이용해 코딩했다. 코드를 폭 넓게 활용하기 위해서는 스탠드얼론 프로그램을 만들 필요가 있다. 

책에서 따로 툴을 추천하지 않아서 예전에 봐두었던 파이참을 사용했다.


https://www.jetbrains.com/pycharm/download/ 


1)모듈

파이썬에서는 .py 확장자의 코드 조각 파일을 모듈module이라 한다.

import문을 사용해서 외부에서 생성한 모듈을 임포트할 수 있고, import 뒤에는 .py 확장자를 지운 파이썬 파일명만 입력하면 된다.

import하고자 하는 파일을 같은 디렉터리에 넣고 불러주면 되는데, 다른 경로에 있는 파일을 불러오고 싶을 경우 아래처럼 원하는 경로를 추가할 수 있다. 


경로 내에서 중복된 이름의 모듈이 있는 경우 먼저 찾은 것을 사용한다. 검색 순서는 sys.path 라는 리스트에 저장된 순서이다. 

첫번째 원소는 빈 문자열인데, 이는 이 파일과 같은 디렉터리에 있는 모듈을 가장 우선시 한다는 의미이다.


1
2
import sys
sys.path.insert(0,"원하는 경로")
cs


아래 코드처럼 어떤 모듈에있는 특정 함수를 필요로 하는 경우 두가지 방법으로 임포트 할 수 있다.


1
2
3
4
5
from module import function as new_func
new_func()
 
import module 
module.function()
cs




2)패키지

파이썬 파일들을 좀 더 효율적으로 사용하기 위해 모듈을 패키지package로 모을 수 있다. 

하나의 디렉터리에 패키지로 만들고자 하는 모듈과 __init__.py파일을 함께 넣으면 파이썬에서 자동으로 이 디렉터리를 패키지로 간주한다.

모듈에서 함수를 추출해서 import했던 것 처럼 패키지에서 모듈을 추출해서 import하거나 패키지를 통으로 가져올 수도 있다.



3)파이썬 표준 라이브러리

파이썬에는 유용한 표준 라이브러리 모듈이 포함되어있다. 몇 개의 표준 모듈을 소개하면 아래와 같다.

from collections import 모듈 로 사용한다.

 

기능 


setdefault(키, 값)

딕셔너리에서 원하는 값을 구할 때 get()을 사용하는데, 이 때 인자로 넣은 키 값이 존재하지 않으면 에러가 난다.

setdefault는 키가 있으면 값을 반환하고 없으면 새로 만든다. 


defaultdict(함수이름)

딕셔너리에 원하는 키의 값이 없으면 기본 값으로 사용할 수 있게, 값을 반환하는 함수를 인자로 넣어준다.

defaultdic(int)라고 사용할 때 int()함수는 기본으로 0을 반환하므로 

이 딕셔너리에서 값이 지정되지 않은 키 값을 찾으려고 하면 기본 값인 0으로 값이 정해진다. 

 

Counter(리스트)

리스트를 인자로 받아 (항목):(그 항목의 개수) 의 딕셔너리 형태의 카운터 값을 반환한다.

카운터 값 사이에 + - & 연산이 가능하다. 

+는 결합, &는 교집합이며 -는 차집합 개념이라고 생각하면 된다.

 

OrderedDict([(키, 값)])

기본으로 제공되는 딕셔너리는 키 값을 넣은 순서대로 정렬되어있지 않다. OrderedDict는 키 값을 넣은 순서대로 원소가 들어가있다.

 

 Deque(문자열)

자료구조 중 하나인 데크(스택+큐)를 사용할 수 있다.