이번에는 모듈과, 패키지, 예외 처리와 함수를 이용하는 방법에 대해서 진행하려고 합니다.
모듈
모듈은 쉽게 말해서 하나의 파이썬 파일(*.py)
입니다. 여러 기능들을 하나에 모듈에 넣어놓고
import
를 이용하여 해당 모듈을 호출하여 사용 하는식으로 사용할 수 있습니다.
사용방법은 아래와 같이 모듈명
을 import
하고 모듈명.함수명()
로 이용할 수 있습니다.
import 모듈명
모듈명.함수명()
또는 from 모듈명 import 함수
과 같이 호출하여 모듈명 없이 함수명
만 사용할 수 도 있습니다.
from 모듈명 import 함수명
from 모듈명 import * # 모듈명에 있는 모든 함수를 사용하겠다는 의미
함수명()
예제
class Calculator:
value1 = 0
value2 = 0
def setData(self, value1, value2):
self.value1 = value1
self.value2 = value2
def plus(self):
return self.value1 + self.value2
def minus(self):
return self.value1 - self.value2
def multiply(self):
return self.value1 * self.value2
def divide(self):
if self.value2 == 0:
return "Do not use 0"
return self.value1 / self.value2
실행
# coding=utf-8
from Calculator import Calculator
cal = Calculator()
while(True):
print "--------------"
print "1. Input Data"
print "2. Plus"
print "3. Minus"
print "4. Multiply"
print "5. Divide"
inputData = input("Select Menu : ")
if inputData == 1:
value1 = input("input value1 : ")
value2 = input("input value2 : ")
cal.setData(value1, value2)
continue
elif inputData == 2:
print "\n--------------\n"
print "result : %d" % cal.plus()
print "\n--------------\n"
continue
elif inputData == 3:
print "\n--------------\n"
print "result : %d" % cal.minus()
print "\n--------------\n"
continue
elif inputData == 4:
print "\n--------------\n"
print "result : %d" % cal.multiply()
print "\n--------------\n"
continue
elif inputData == 5:
print "\n--------------\n"
print "result : %d" % cal.divide()
print "\n--------------\n"
continue
else:
print "\n--------------\n"
print "Wrong number"
print "\n--------------\n"
패키지
패키지는 모듈의 집합이라고 생각하면 편합니다.
디렉토리 구조로 여러가지 모듈을 모아 놓고 사용할 수 있습니다.
예를 들어서 아래와 같은 구조의 패키지가 있을때,
network/__init__.py
network/connect/__init__.py
network/connect/get.py
network/connect/post.py
network/disconnect/__init__.py
network/disconnect/disconnect.py
파이썬 코드에서는 다음과 같이 사용할 수 있습니다.
import network.connect.get
network.connect.get()
이거나, 앞에 부분을 안써주기 위해서
import network.connect import get
get()
init.py의 역할
위의 예시로 준 구조를 보면 패키지 안에 __init__.py
가 있습니다.
해당 파일은 해당 디렉토리가 패키지임을 알려주고, __init__.py
가 있어야지만
패키지로 인식합니다.
(**python3.3 부터는 __init__.py가 없어도 되지만, 하위 호환을 위해 사용하는게 좋습니다.)
예외처리
보통 프로그램 언어는 잘못된 코드로 인해서 버그가 발생을 하게 되면, 멈추거나, 죽어 버리는데, 예외처리를 하게 되면 버그를 만났을때, 멈추거나 죽지않고, 별도의 로직을 타게 할 수 있습니다.
사용방법
아래가 가장 기본 형태
try:
동작 코드
except 발생 에러A:
동작 코드 중 에러A가 발생할때 들어옵니다
except:
발생 에러A 이외의 모든 에러일때는 이리로 들어옵니다
finally:
정상으로 처리되던 에러가 발생하던 마지막에는 여기를 타게 됩니다
에러가 나지 않았을때 처리하는게 있는 경우
try:
동작 코드
except:
에러가 발생하면 이리로 들어옵니다
else:
에러가 발생하지 않았으면 이리로 들어옵니다
실습 (정상일때)
# coding=utf-8
try:
a = 12
print 144 / a
except ZeroDivisionError:
print "0으로 나누었음"
finally:
print "무조건 실행 되는 부분"
결과
12
무조건 실행 되는 부분
실습2 (에러발생)
# coding=utf-8
try:
a = 0
print 144 / a
except ZeroDivisionError:
print "0으로 나누었음"
finally:
print "무조건 실행 되는 부분"
결과
0으로 나누었음
무조건 실행 되는 부분
에러 회피하기
만약 에러가 났을때 아무것도 하지 않고 넘어가기 위해서는 pass
를 써줍니다.
# coding=utf-8
try:
a = 0
print 144 / a
except:
pass
에러 일부러 발생 시키기
에러를 일부러 발생시켜야 하는 경우가 가끔 있는데, 예를 들어서, 예외 처리가 잘 동작하는지 확인을 위해서 강제로 예외를 발생 시키는 경우가 있습니다.
에러를 일부러 발생시키기 위해서는 raise
라는 명렁어와 발생할 에러
를 같이 입력해줍니다
raise FileNotFoundError
실습
# coding=utf-8
try:
raise ZeroDivisionError
except :
print "에러 발생"
결과
에러 발생
PIP를 이용한 파이썬 패키지 설치
pip는 파이썬으로 작성된 패키지 소프트웨어를 설치 및 관리하는 패키지 관리 시스템 입니다, 기본적으로 파이썬을 설치하면 같이 설치가 됩니다.
만약 설치가 되어 있지 않으면 아래 명령어로 설치를 해줍니다.
$ curl https://bootstrap.pypa.io/get-pip.py | python
기본적인 사용법
새로운 패키지 설치
$ pip install 패키지명
예제
$ pip install django
$ pip install numpy
$ pip install flask
$ pip install matplotlib
설치된 패키지 삭제
$ pip uninstall 패키지명
예제
$ pip uninstall django
$ pip uninstall numpy
$ pip uninstall flask
$ pip uninstall matplotlib
설치된 패키지 리스트 보기
$ pip list
결과
특정 패키지 정보 보기
$ pip show 패키지명
예제 및 결과