Python/파이썬 기초

py 파일 import 방법, if __name__ == '__main__' 의미, Colab에서 py 파일 가져오기

jimmy_AI 2021. 12. 21. 13:35
반응형

py 파일 import

다른 py 파일 내에 작성된 함수나 클래스를 가져오고 싶은 경우가 있을 것입니다.

또한, 작성된 코드에서 if __name__ == '__main__' 이라는 부분을 많이 보셨을 수 있는데요.

이번 글에서는 파이썬 작업의 기초가 되는 py 파일 import에 대해서 간단한 예제를 보며

이해해보는 시간을 가져보도록 하겠습니다.

 

예를 들어, 다음과 같은 코드가 example.py 파일에 저장되었다고 가정해보겠습니다.

def double(x):
    return 2 * x

def triple(x):
    return 3 * x

print("10의 두 배는?", double(10))
print("10의 세 배는?", triple(10))

이제 다른 py 파일이나 ipynb 파일에서 위의 example.py 파일 내의

함수를 불러오는 방법을 보도록 하겠습니다.

 

방법은 간단합니다.

 

1. 불러올 py파일과 코드를 실행시킬 py파일(혹은 ipynb파일)을 같은 디렉토리에 위치시킨다.

2. xxx.py 가 py 파일 이름이라면 import xxx 라고 불러온다.

 

예를 들어, 위 example.py 파일 내 함수를 가져오려면 import example 로 작성하면 되겠지요.

다른 py 혹은 ipynb 파일에서 import 후 함수를 사용해보겠습니다. 출력 결과를 살펴볼까요?

import example

double_5 = example.double(5)
print("5의 두 배는 ?", double_5)

예상 결과는 무엇인가요?

 

5의 두 배는? 10

 

메시지가 출력되는 것이 예상 결과가 되겠습니다.

그러나, 실제 결과는 다음과 같았습니다.

example.py 파일의 print문이 같이 실행되어 한 줄이 아닌 세 줄의 메시지가 출력됬습니다.

 

위처럼 출력된 이유는 py 파일 import 시에 전체 코드가 한번 실행되면서 가져오기 때문입니다.

따라서, 우리가 원하지 않았던 example.py 파일 내 print 문이 같이 실행된 것이지요.

 

 

 

from ~ import 로 함수 가져오기

자 그렇다면 이번에는 xxx.py 파일의 yyy 함수를 from xxx import yyy 형식으로 가져와보겠습니다.

이번에는 triple 함수만 가져와서 사용해볼게요. from example import triple로 가져오면 됩니다.

from example import triple

triple_5 = triple(5)

print("5의 세 배는?", triple_5)

이번에도 과연 example.py 파일 내 print가 같이 출력되었을까요?

결과는 아래와 같았습니다.

이번에도 triple 함수만 불러와 사용하려던 목적과 달리 코드 전체가 실행되어버렸습니다.

그렇다면 원하는대로 '5의 세 배는 15' 메시지만 출력받고 싶은 경우는 어떻게 해야할까요?

반응형

if __name__ == '__main__' 사용 : import 시 코드 실행 방지

위와 같은 경우를 방지하기 위하여 사용하는 것이 바로

if __name__ == '__main__' 입니다.

example.py 파일을 아래와 같이 바꿔보겠습니다.

def double(x):
    return 2 * x

def triple(x):
    return 3 * x

# 바뀐 부분
if __name__ == '__main__':
    print("10의 두 배는?", double(10))
    print("10의 세 배는?", triple(10))

example.py를 직접 실행해본다면, 두 줄의 print문은 정상 실행되는 것을 볼 수 있습니다.

 

이제 위에서 example.py를 직접 import 하거나 from ~ import ~ 로 가져오는 방법

사용해서 결과를 살펴보겠습니다.

 

이제 정상적으로 '5의 두 배는? 10' 혹은 '5의 세 배는? 15' 라는 한 줄의 메시지만 출력되는 것을

확인해보실 수 있을 것입니다!

 

원리는 간단합니다.

 

py 파일을 직접 실행 : __name__ 인자가 '__main__' 으로 지정되어 실행

py 파일을 import하여 실행 : __name__ 인자가 '__main__' 가 아니라서 미실행

 

위와 같은 원리로 import 하는 경우에 실행을 방지하고 싶은 부분의 코드를 지정할 수 있습니다!

 

 

 

구글 Colab 환경에서 py 파일 import 하는 방법

마지막으로, 구글 Colab에서 ipynb 파일을 작성할 때, 원하는 py 파일을 가져오는 방법을

말씀해드리면서 포스팅을 마무리해보도록 하겠습니다.

 

여기서도 사용 방법은 간단합니다. 작업중인 ipynb 파일과 불러오기를 원하는 py 파일을

같은 디렉토리 상에 놓아야 하는데요. 이는, 구글 드라이브 내의 ipynb 파일이 있는 디렉토리에

py 파일을 업로드 해주시면 됩니다.

 

그리고, ipynb 파일을 작업하실 때, 구글 드라이브를 마운트해주시면 되는데요.

마운트하는 방법은 매우 간단하긴하나, 이전 포스팅에서 다룬 적이 있어

해당 포스팅의 링크를 아래에 적어두는 것으로 마무리하도록 하겠습니다.

 

코랩 구글 드라이브 연동 (Colab에서 마운트 하는 방법 + 디렉토리 확인)

이번 포스팅에서는 구글 Colab에서 드라이브 내 파일을 불러오고 파이썬에서 작업한 결과 파일을 드라이브에 저장 가능하도록 Colab과 드라이브를 연동하는 방법에 대해서 다루어보도록 하겠습니

jimmy-ai.tistory.com

이상으로 py 파일을 불러와 사용하는 방법과 원리에 대해서 간단히 다루어 본

포스팅을 마무리하도록 하겠습니다. 읽어주셔서 감사합니다.