코딩에서 가장 중요한 것은, 바로 남이 구현해 놓은 것을 가져다가 잘 쓰는 것이라고 배웠다.
모듈 (moudule)이란 함수나 변수 혹은 클래스 등을 뫃아놓은 파일이며, 쉽게 말하면 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만들어진 파이썬 파일이다.
다른 사람들이 이미 만들어 놓은 모듈을 사용하거나, 내가 직접 만들어서 사용할 수도 있다.
간단히 모듈을 만들고 불러와 보자.
1 | # my_statistics.py |
my_statistics.py
라는 모듈을 불러오기 위하여 import
를 사용하였다.
불러온 이후, 모듈 내의 함수 add
를 사용하기 위해 모듈이름.함수명() 와 같이 도트 연산자를 붙였다.
my_statistics.add(10,20)
조금 길지 않은가? 모듈 이름을 쓰지 않고 함수를 사용하는 방법도 있다.
1 | # my_main.py |
위와 같이 from 모듈이름 import 모듈함수 와 같은 형태를 입력하면, 그 함수를 모듈이름을 붙이지 않고 사용할 수 있다.
모듈 내 모든 함수를 불러오려면, *
을 붙이면 된다.
이번에는, 앞서 만든 my_statistics.py
모듈에 몇 개의 코드를 추가해 보자.
모듈이 제대로 작동하는지 테스트를 위한 코드이다.
그리고, import
를 통해 다른 파이썬 파일에서 모듈을 불러와 보자.
1 | # my_statistics.py |
나는 my_statistics.py
모듈 안의 add
함수와 sub
함수를 사용하려고 import
했는데, 테스트 코드까지 같이 출력되어 버린다..
이러한 문제를 방지하기 위하여, if __name__ == "__main__"
을 사용한다.
1 | # my_statistics.py |
import
를 실행했을 때 이제는 테스트 코드가 출력되지 않음을 알 수 있다.
내가 만약 my_statistics.py
을 직접 실행시킬 경우 __name__
에는 __main__
이라는 값이 저장된다.
하지만, my_main.py와 같은 다른 파이썬 파일에서 my_statistics.py
을 직접 실행시킬 경우, __name__
에는 my_main.py
이라는 값이 대신 저장된다.
지금까지는 작성한 모듈과 실행하고 있는 파이썬 파일이 같은 디렉토리 안에 존재하는 경우만 다루었다.
만약 내가 적당한 곳 (ex.바탕화면에 있는 python 폴더)에 py파일을 저장해 놓았는데, 이를 불러서 현재 디렉토리 내에서 사용하려면 어떻게 해야할까?
1 | import sys |
sys.path
는 파이썬 라이브러리들이 설치되어 있는 디렉토리를 list 자료형으로 가지고 있다.
여기다가 우리는 list 자료형 다루기에서 언급하였던 append()
함수를 사용하여 요소를 추가하면 된다.
파이썬 모듈의 경로를 입력할 때, \
가 " "
안에서 인식되게 하기 위하여 \\
이렇게 두 번 입력했음에 유의하자.
패키지 (package)는 모듈들을 묶어놓은 것으로, 폴더 형태로 생각하면 된다.
1 | root_package/ |
위 구조를 예시로 살펴보면, root_package
안에 sub_package_1
과 sub_package_2
가 있고 각각의 디렉토리 안에 모듈들이 들어 있다.
패키지 안의 모듈을 사용하려면 루트 디렉토리부터 경로를 적어주면 된다.
import root_package.sub_package_1.module1
패키지의 경우 보통 많은 개발자들이 참여하는 복잡한 프로젝트의 경우에 사용한다.
그러므로 조금 더 자세한 내용을 보려면 여기를 클릭하자.