[Python] 모듈의 포함(import)

파이썬에서 다른 모듈(라이브러리)를 포함하는 구문 및 방식에 대해서만 다룬다.

일단 포함용으로 간단한 모듈 파일을 하나 만들었다. 이걸 라이브러리처럼 사용할 것이다. image

image


기본 import문
import 파일명
기본 라이브러리에 위치에 있거나, 현재 파일과 동일한 디렉터리에 존재하는 파이썬 파일을 포함시킨다.

그러면 해당 파일에 존재하는 변수나 함수, 클래스 등을 파일명으로 접근할 수 있다. image

image

돌리면 image

image 당연히 잘 돌아간다.


import as 구문
import 파일명 as 새이름
근데 파일명으로 접근하기엔, 파일명이 너무 길거나 논리적으로 뭔가 의미를 더 부여하고 싶을 수도 있다.

그럴때 쓰는게 as 구문으로, 접근용 이름을 직접 지정할 수 있다.
이런 식으로 image

image 결과는 동일하다.


from import 구문
from 파일명 import 가져올거...
근데 매번 저렇게 파일명을 명시하는 것도, 고단한 일이 될 수가 있다. 몹시 자주 사용하게 될 함수나 타입이라면 말이다.

그럴때 파일명을 생략할 수 있게 해주는게 바로 from 구문이다.
이렇게 쓸 수 있다. image

image

파일에 든걸 전부 가져오고 싶다면 *로 표시할 수도 있는데 image

image 이름 충돌의 위험이 있어서, 좋은 방법은 아니다.


from import as 구문
from 파일명 import 가져올거 as 새이름...
사실 쓸일은 거의 없을것같은데... 그냥 가져올 함수나 변수, 타입 등에 새 이름을 지어주는거다.

별거없다. image

image


서브디렉터리의 파일 포함하기
가령 현재 디렉터리의 서브 디렉터리에 있는, boom이란 파일을 포함시켜야 한다고 치자.

주체가 되는 현재 디렉터리는 이렇고 image

image

sub 디렉터리 안에는 boom.py이 들어있고 image

image

boom.py 안에는 boom 함수가 들어있다. image

image 이제 저걸 test.py에서 사용하려고 한다.

그러려면 밑작업이 하나 필요하다.
sub 디렉터리에 init.py라는 쓸데없는 빈 파일을 하나 만드는 것이다. image

image 이게 있어야 인식을 한다.

그럼 이제 test.py로 돌아가서 포함을 시켜보자.
from import문을 쓰면 되는데, 구조가 조금 달라진다.
서브 디렉터리의 파일이, 해당 서브 디렉터리라는 모듈의 객체처럼 취급되기 때문이다.
from 디렉터리명 import 파일명


image

image

image 그럼 잘 돈다.

이렇게도 할 수 있다.
경로의 표현은 .로 구분한다. image

image

image

이외에도 환경변수나 뭐 다른 함수를 사용해서 모듈을 가져오는 방식이 있는데, 여기서 다루진 않는다.
쓸일도 없다.