위키북스 박응용 저 "점프 투 파이썬" 책을 읽고 정리한 내용입니다.
다소 잘못된 내용과 구어적 표현 이 포함되어 있을 수 있습니다.
모듈이란
- 원하는 기능이 다른 파이썬 파일에 구현되어 있다면, 그 파일을 가져와서 내 파일에서 동작하도록 할 수 있다. 이때의 가져온 파이썬 파일을 모듈이라고 한다
- 따라서 모든 파이썬 파일은 그 자체로 실행될수도 있지만 다른 파일에 사용될 수도 있다. 그 자체로 실행될때 메인으로 실행됐다고 하고 다른 파일에 사용되면 모듈로 사용됐다고 한다
모듈 가져오기
import A.B # 전부 다 가져오기
A.B.C() # 사용할때
from A.B import C # 일부만 객체만 가져오기
C() # 사용할때
from A import B # 일부 모듈만 가져오기
B.C() # 사용할때
- 디렉토리
A
에 모듈B
가 있고 함수C()
를 사용하려 할때의 모듈 가져오는 방법, 사용법 이다 - 그냥
import
의 경우 경로의 최종점은 모듈이어야 한다 - 파이썬 파일이 위치한 디렉토리의 하위 디렉토리의 모듈만 접근할 수 있다
외부 디렉토리의 모듈 가져오기
sys.path.append(경로) # 파이썬 파일에서
PYTHONPATH=경로 # 터미널에서
- 모듈이 현재 디렉토리의 하위 디렉토리에 위치해있지 않을 때 경로를 추가해주는 작업이다
sys.path
: 모듈을 검색할 경로들이 들어있는 리스트.append()
를 통해 추가 가능하다PYTHONPATH
: 터미널에서 환경변수로sys.path
에 경로를 추가시켜줄 수 있는 기능이다- 위의 방법으로 경로설정을 하지 않고 외부 디렉토리의 모듈을 가져오면 모듈을 찾지 못하고 에러가 난다
상대경로
- 현재 디렉토리 :
./
- 부모 디렉토리 :
../
- 파이썬 파일이 위치한 디렉토리가 부모 디렉토리가 아니라 현재 디렉토리라는 것에 주의
닉네임 이용하기
import A.B.C.D as E :
- 경로가 길고 복잡할때
as
로 닉네임을 붙여주면 경로 대신 사용할 수 있다
모듈과 메인 분리하기
if __name__ == __main__ :
# ...
- 모듈의 내부에 메인으로 실행됐을 경우에만 동작하길 원하는 부분이 있으면 이 조건문 아래 적어주면 된다
__name__
: 해당 파일의 실행 모드를 담는 변수. 메인으로 실행되면__main__
이 저장되고 모듈로 실행되면 모듈명이 들어간다