calculator 만들기
다음과 같이 vscode를 이용하였다.
에러 해석
터미널에서 작동시킬시 ImportError: attempted relative import with no known parent package 를 반환한다. 공식 문서를 확인할 경우, 메인 모델에서는 반드시 절대 경로로 import를 해야 한다는 사실을 알 수 있다. 이에 따라 수정할 경우
5를 반환 하는 것을 알 수 있다.
add_and_multiply.py에서 multiply함수를 절대경로와 상대경로도 각각 임포트
두 경로 모두 정상적으로 작동하는 것을 확인 할 수 있었다. 앞서 살펴본 main의 경우 import하려는 package보다 상위 경로에 있었기에 절대경로로만 import할 수 있었으나, 이번 문제의 경우 import하려는 package와 import당하는 package가 동일 선상에 있기 때문에 상대 경로로도 정상적으로 import되는 것을 알 수 있다.
__init__.py
의 역할
이것은 해당 디렉토리가 패키지의 일부임을 알려주는 역할을 하는데, 하위버전과의 호환을 위해 입력해주는 것이 안전하다. 이때, 해당 디렉토리의 모든 모듈을 import하기 위해 * 을 사용하는 경우, __all__
변수를 이용해 선언을 해줄 필요가 있다.