2022-09-06 TIL sparta

최해민·2022년 9월 6일
0

Python 활용

  • 다른 파일에 있는 코드 import해서 사용하기

    예제에서 사용 된 파일 구조
│  a.py
│  main.py
├─ folder
│  ├─ b.py
│  ├─ c.py
  • from과 import의 이해를 돕기 위한 팁

python에서 다른 파일에 있는 코드를 사용할 때에는 어디서(from) 어떤(import) 것을
가져와서 사용할지 지정해 줘야 합니다.

main.py 파일을 기준으로, 선언된 함수와 변수의 경로는 아래와 같습니다.

a.a_funtion
folder.b.b_funtion
folder.b.PIE
folder.b.HELLO
folder.c.c_funtion1
folder.c.c_funtion2

여기서 다양한 방식으로 from과 import를 사용할 수 있습니다.

from a import a_funtion
from a import *
import a

from folder import b
from folder.b import *

from folder.c import c_funtion1, c_funtion2

이창호 튜터님께서 강의하신 모듈 임포트하여 사용하는 방법이다. 개인적으로 디렉토리에 있는 모듈 임포트는 처음 해보았다.
위와 같이 실습해보고, 튜터님께서 내주신 과제를 쉽게 풀었다.

그리고 아래는 팀 내에서 에러가 발생한 경우이다.

├─ folder1
│  ├─ main.py
├─ folder2
│  ├─ a.py

나는 튜터님의 예시와 같이 동일한 디렉토리안에서 또는 모듈파일은 하위 디렉토리에서 실행하였다. 이 때는 문제가 없었지만 위와 같이 다른 디렉토리에서 모듈을 불러오는 데에 실패했다.
이유는 다음과 같다.

from . import a

from 다음에 오는 "." 은 현재 실행중인 파일의 디렉토리 위치를 나타낸다. 이는 생략하고 import만 사용할 수 있다. 하지만 에러상황과 같이 다른 디렉토리일 때 상위 디렉토리를 찾아가야하기 때문에, 현재 실행되고 있는 파이썬 파일에서 경로지정을 해주어야 했다.
이렇게 다른 디렉토리에서 불러올 때, 경로를 지정해주어 불러올 수 있지만 모듈을 만들어 둘 때 동일한 디렉토리 or 하위 디렉토리에 모듈을 저장해 놓는 것이 권장되는 바이다.

profile
안녕하세요

0개의 댓글