패키지를 만들어보자!

amuse·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를 추가해주지 않아도 파이썬이 모듈로 인식하기때문에 꼭 써주지않아도 된다!

0개의 댓글