TIL#19 PYTHON 기초(12)

Dasom·2020년 8월 1일
0

python

목록 보기
14/50
post-thumbnail

모듈

함수나 변수 또는 클래스를 모아 놓은 파일. 다른 파이썬 프로그램에서 불러와 사용할 수 있도록 만든 파이썬 파일이라고도 할 수 있다. 다른 사람들이 이미 만들어 놓은 모듈을 사용할 수도 있고 우리가 직접 만들어서 사용할 수도 있다.

import 모듈 이름

이렇게 모듈을 불러오게 되면 모듈 안의 함수를 쓸 때, 모듈이름.함수 이렇게 호출한다. 모듈 이름 없이 함수 이름만 쓰고 싶다면

from 모듈 이름 import 모듈 함수

이렇게 사용하게 되면 함수이름만 써서 호출할 수 있다.
예를 들어 random이라는 모듈에서 randint라는 함수를 이용하고 싶다고 하자. 그렇다면 첫번째 방식은 import random 으로 random 모듈을 불러온 후에 random.randint로 함수를 실행한다. 두번째 방식은 from random import randint 로 random 모듈에 있는 randint 함수를 불러왔기 때문에 함수 실행을 할 때 randint로 실행한다.

if name == "main":

예를 들어 파일 mod.py가 있다고 하자.

# mod.py
def add(a, b):
	return a+b

print(add(2, 4))

같은 디렉토리의 다른 파일에서 add함수를 쓰기 위해 import mod를 하게 되면 바로 print(add(2,4)) 값인 6이 출력된다. add 함수만 사용하려고 한다면,

# mod.py
def add(a, b):
	return a+b
    
if __name__ == "__main__":
	print(add(2, 4))

이렇게 쓴다. 위와 같이 소스를 적는다면 직접 mod.py파일을 실행했을 때는 print(add(2, 4)) 문장이 수행되지만, 다른 파일에서 이 모듈을 불러서 사용할 때는 수행되지 않는다.

클래스나 변수 등을 포함한 모듈

모듈은 클래스나 변수 등을 포함할 수도 있다. 밑에 mod1.py 파일이 있다고 가정하자.

# mod1.py
PI = 3.141592

class Math:
	def solv(self, r):
    	return PI * (r ** 2)

def add(a, b):
	return a+b

print(mod1.PI)를 실행하면 변수 PI값이 출력된다.

a = mod1.Math()
print(a.solv(2))

를 실행하면 Math클래스의 함수 solv의 결과값이 출력된다.

예외 처리

오류를 무시하고 싶을 때 try, except를 사용해 예외적으로 오류를 처리할 수 있다. try, except 문은 try 블록 수행 중 오류가 발생하면 except 블록이 수행된다. 오류가 발생하지 않았다면 except 블록은 수행되지 않는다.

1. try, except 만 쓰는 방법
오류 종류에 상관없이 오류가 발생하면 except 블록을 수행한다.

예시>
try:
	a = [1, 2, 3]
	a[4]
except:
	print('오류가 발생했습니다')

리스트 a에서 a[4]는 없기 때문에 IndexError 가 발생하고 '오류가 발생했습니다'가 출력된다.

2. 발생오류만 포함한 except문
오류가 발생했을 때 except 문에 미리 정해놓은 오류 이름과 일치할 때만 except 블록을 수행한다.

try:
	4 / 0
except ZeroDivisionError:
	print('0으로 나눌 수 없습니다')

위와 같은 경우는 '0으로 나눌 수 없습니다'가 출력된다.

3. 발생 오류와 오류 메시지 변수까지 포함한 except문
2번에서 오류메시지의 내용까지 알고 싶을 때 사용하는 방법이다.

try:
	4 / 0
except ZeroDivisionError as e:
	print(e)

이렇게 실행하게 되면 변수 e에 담기는 오류메시지를 출력한다. division by zero 가 출력된다.

try, finally

try문에는 finally 절을 사용할 수 있다. finally 절은 try문 수행 중 예외 발생 여부에 상관없이 항상 수행된다. 보통 사용한 리소스를 close해야 할 때 많이 사용된다.

예시>
f = open('파일', 'w')
try:
	# 수행할 문장
finally:
	f.close()
profile
개발자꿈나무🌲

0개의 댓글