Modules & Packages

baik9261·2021년 7월 9일
0

Assignment

목록 보기
3/3

1. sys.modules 와 sys.path의 차이점

sys.modules은 파이썬이 모듈이나 package를 찾기위해 가장 먼저 확인하는 곳이다. sys.modules은 단순한 dictionary 이고 이미 import된 모듈과 package들을 저장하고 있다. 새로 import 하는 모듈은 찾을수 없지만 한번 import된 모듈과 package들은 파이썬이 또 다시 찾지 않아도 된다.

sys.path는 가장 마지막에 확인하는 곳이다 String Value가 포함된 List다. 파이썬은 list의 각 경로를 하나 하나 확인하면서 해당 경로에 import 하고자 하는 package가 위치해 있는지 확인한다.

2. sys 도 import 해야하는 모듈입니다. 파이썬은 sys 모듈의 위치를 어떻게 찾을 수 있을까요?

파이썬에서 자동으로 경로를 가져오기 때문에 별도로 지정하지 않아도 된다.

3. Absolute pathrelative path의 차이점을 서술해 주세요.

Absolute path는 디렉터리를 모두 적어주어야 하지만 Relative path는 local package 안에서 다른 local package를 import 할 때 사용되며 import 하는 위치를 기준으로 경로를 적어준다.

4. calculator 패키지 만들기

-main.py에서 상대경로로 add_and_mutiply 를 임포트 했을 때 발생하는 에러를 확인하고, 다음의 파이썬 공식 문서를 참고해서 main module 에서는 패키지의 모듈을 어떻게 임포트 해야하는지 블로깅 해주세요.

오류 : ImportError: attempted relative import with no known parent package
Solution: 같은 local package에 없기 때문에 절대경로를 사용해야 한다.

-add_and_multiply.py에서 multiply함수를 절대경로와 상대경로도 각각 임포트 해보고 main 모듈과 차이점을 생각해보고 결과를 출력해 보세요.

같은 디렉터리 안에 있기 때문에 상대 결로로도 이용 가능하다. 코드가 길어지지 않아서 편하긴 하지만 그래도 절대 경로가 더 실수가 없을 것 같다.

- init.py 파일의 역할에 대해서도 정리해서 블로깅 해주세요.

해당 파일이 패키지의 일부임을 알려주는 역할을 한다. 만약 init.py 파일이 없다면 패키지로 인식이 불가하다.

profile
baik9261@gmail.com

0개의 댓글