지난 포스팅에서 __INIT__.PY 의 용도와 __init__.py 파일 변경 후 실행하는 방법에 대해 공부 해봤습니다
이번 포스팅에서는 relative 패키지 가 어떤 건지와 예외 처리에 대해 공부해 보도록 하겠습니다
54. 파이썬 – 패키지 __init__.py 의 용도
53. 파이썬 – 패키지 안의 함수 실행해 보기
52. 파이썬 – 패키지의 정의와 만드는 방법
파이썬 패키지
relative 패키지
지난 시간까지 진행했던 파이썬 패키지에서 만일 graphic 디렉터리의 있는 render.py 모듈이 sound 디렉터리의 echo.py 모듈을 사용하려 한다면 어떻게 하는게 좋을까요?
아래 수정한 render.py 를 살펴 보겠습니다
# render.py
from game.sound.echo import echo_test
def render_test():
print("render")
echo_test()
위 코드 에서와 같이 from game.sound.echo import echo_test 문장을 추가해서 echo_test 함수를 사용할 수가 있도록 수정을 했습니다.
이제 이렇게 수정한 결과를 살펴보도록 하겠습니다.
>>> from game.graphic.render import render_test
>>> render_test()
render
echo
>>>
위에서 수정한 render.py 의 내용만 잘 수정하셨다면 방금 실행한 코드는 이상없이 잘 수행이 될것입니다.
이처럼 from game.sound.echo import echo_test 문장을 입력해서 전체 경로를 사용하여 import 할 수도 있지만 아래 코드처럼 \이 from ..sound.echo import echo_test 로 relative 하게 import 하는 것도 가능합니다.
from game.sound.echo import echo_test 문장이 from ..sound.echo import echo_test 로 변경이 되었습니다.
여기서 .. 은 render.py 파일의 부모인 디렉터리를 의미하게 됩니다.
결국 reder.py 파일의 부모 디렉터리는 game 이므로 위처럼 import ㄱ 가능하게 되는 것입니다.
render.py 파일의 현재 디렉터리는 graphic 이며 부모 디렉터리는 game 입니다
relative 한 접근자에게는 아래와 같은 것이 있습니다.
.. - 부모 디렉터리
. - 현재 디렉터리
위 내용은 윈도우에서 사용하는 명령프롬프트에서도 동일하게 사용하는 것을 볼 수 있습니다.
예외 처리 #1
예외 처리의 정의
프로그래밍을 하다 보면 정말 알 수 없는 수많은 오류를 만나게 됩니다.
이렇게 오류를 만나는 것은 프로그램이 잘 못 되는 것을 막기 위한 프로그래밍 언어들의 배려 라고 볼 수 있습니다.
이렇게 프로그램이 잘못되는 것을 막기 위해 처리하는 것을 예외 처리라고 합니다.
오류가 발생하는 경우
우선 오류가 발생하는 경우에 처리하는 방법에 대해서 공부하기 전에 어떤 상황에서 오류가 발생하는지 알아 보겠습니다.
오타에 대한 오류
제일 흔하게 발생하는 오류는 오타에 대한 오류 입니다.
이런 오타에 대한 오류는 보통 구문 오류 라고 하는데 간단하게 얘기해 보면 print 명령을 해야 하는데 prtint 라고 해서 나오는 오류 들이 이런 구문 오류 입니다.
FileNotFoundError 오류
FileNotFoundError 오류는 존재 하지 않는 파일을 사용하려고 시도하다 보면 발생하는 오류 입니다
>>> f = open("메인없는 파일",'r')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: '메인없는 파일'
>>>
위 코드처럼 open 명령을 통해 파일을 열려고 하는데 실제로는 존재하지 않는 파일이기 때문에 FileNotFoundError 가 발생 하게 됩니다
- 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
