패키지를 만들어보자!

김기용·2020년 10월 24일
0

🤔 main.py

#상대경로
# from .calculator import add_and_multiply

from calculator.add_and_multiply import add_and_multiply

if __name__ == '__main__':
    print(add_and_multiply(1, 2))

main.py 에서 모듈을 참조할때 상대경로를 사용하면 오류가 발생한다. 공식문서를 참조해서 설명을 하자면 다른 모듈들이 '__main__' 모듈을 기준으로 설정해서 상대경로를 설정하기 때문이다.

🤔 add_and_multiply.py

from .multiplication import multiply

def add_and_multiply(a, b):
   return multiply(a, b) + (a+b)

add_and_multiply.py 에서는 multiply 모듈을 참조해 값을 반환하는데 multiply 함수는 같은 디렉토리에 있는 multiplication.py 파일에 위치하고 있기때문에 ".multiplication" 써서 디렉토리를 참조해준 다음에 multiply 함수를 import 해준다.

🤔 __init__.py 란?

패키지를 만들게 되면 모든 디렉토리마다 하나씩 가지고 있는 공통의 파이썬 파일이 있다. 내용은 없지만 아주 중요한 역할을 하는데 이 파일이 위치한 디렉토리는 패키지의 일부임을 알려주는 역할을 한다. 따라서 이 파일이 위치하지 않은 디렉토리는 패키지로 인식되지 않는다. 😱

🕹 하지만,python 3.3 부터는 디렉토리마다 __init__.py를 추가해주지 않아도 파이썬이 모듈로 인식하기때문에 꼭 써주지않아도 된다!

profile
매일 새로운 배움을 통해 꾸준히 성장하는 것을 목표를 두고 있습니다. 논리적인 사고로 문제해결 하는것에 희열을 느끼고 언젠가 제가 만든 결과물들이 사람들에게 편이를 제공하며 사용되는 날을 간절히 소망하고 있습니다. 🙏

0개의 댓글