점프 투 파이썬 패키지 관련 질문

질문1
220p 내용을 보면 graphic 디렉터리의 render.py 모듈이 sound 디렉터리의 echo.py 모듈을 사용하고 싶다면
render.py에서
from game.sound.echo import echo_test를 추가하면 된다고 나와 있는데
제가 이해하기론 graphic 디렉터리랑 sound 디렉터리는 다른 디렉터리인 것 같거든요.

근데 208p 설명에 import는 현재 디렉터리에 있는 파일이나 파이썬 라이브러리가 저장된 디렉터리에 있는 모듈만 불러올 수 있다고 나와 있으니깐

graphic의 render.py 모듈에서 echo 모듈을 import 할 수 없지 않나요?

질문2
221p relative하게 import 하는 부분 설명에서 궁금한 점이 있습니다.

sound와 graphic 디렉터리의 상위 디렉터리가 여기에선 game 하나뿐인데
공통된 상위 디렉터리가 여러 개인 경우에도 똑같이 ..만 쓰면 되는 거 맞나요?
예를 들어
from game1.game2.game3.sound.echo import echo_test를
from ..sound.echo import echo_test 이렇게 쓸 수 있는 거 맞나요?

초보 400

M 2022년 1월 27일 12:35 오전

목록으로
1개의 답변이 있습니다. 1 / 1 Page

질문1

208 페이지에서 말하는 현재 디렉터리는 프로그램이 위치한 디렉터리가 아니라 "python" 명령어나 파이썬 셸을 실행한 위치를 의미합니다.

질문2

질문이 잘 이해가 가지 않습니다.

박응용

2022년 1월 27일 12:48 오후

221p 예제에선 game 폴더 안에 sound와 graphic 폴더가 있는 경우인데 from game.graphic.render import render_test 이렇게 입력해야 하는 것을, graphic과 sound가 동일한 깊이이기 때문에 ..를 사용하여 from ..sound.echo import echo_test 이렇게 입력한 경우인 것처럼요 만약 game1 폴더 안에 game2 폴더가 있고, game2 폴더 안에 game3 폴더가 있고, game3 폴더 안에 sound랑 graphic이 있는 경우에도 마찬가지로 그냥 from ..sound.echo import echo_test라고 쓰면 되는 건가요? - 초보님, 2022년 1월 27일 4:17 오후 추천 , 대댓글
+1 @초보님 해봐야겠지만 생각하신게 맞는것 같습니다. - 박응용님, 2022년 1월 27일 4:34 오후 추천 , 대댓글
@박응용님 답변 감사합니다. 글 너무 자주 쓰기는 조금 그래서 여기서 간단한 거 하나 더 질문드리고 싶습니다. class MyError(Exception): pass def say_nick(nick): if nick == '바보': raise MyError() print(nick) 여기서 raise MyError()에서 괄호를 쓴 이유는 딱히 없는 건가요? 일단 여기서 괄호를 빼도 오류는 없는 것 같고, 앞의 예제에서 raise NotImplementedError를 raise NotImplementedError() 이렇게 괄호를 써도 오류는 없는 것 같아서 그런데, 즉 괄호는 써도 되고 안 써도 되는 건가요? NotImplementedError도 Exception 클래스의 자식클래스인 건가요? - 초보님, M 2022년 1월 27일 6:56 오후 추천 , 대댓글