위키북스 박응용 저 "점프 투 파이썬" 책을 읽고 정리한 내용입니다.

다소 잘못된 내용과 구어적 표현 이 포함되어 있을 수 있습니다.

모듈이란

  • 원하는 기능이 다른 파이썬 파일에 구현되어 있다면, 그 파일을 가져와서 내 파일에서 동작하도록 할 수 있다. 이때의 가져온 파이썬 파일을 모듈이라고 한다
  • 따라서 모든 파이썬 파일은 그 자체로 실행될수도 있지만 다른 파일에 사용될 수도 있다. 그 자체로 실행될때 메인으로 실행됐다고 하고 다른 파일에 사용되면 모듈로 사용됐다고 한다

모듈 가져오기

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__ 이 저장되고 모듈로 실행되면 모듈명이 들어간다