Python의 __name__

python에서 어떠한 파일을 실행하는 방법은 2가지가 있는데, 하나는 모듈로 불러오는 방법이고, 하나는 직접 터미널에서 실행하는 방법이다. 다음 예시와 같이 직접 터미널에서 실행할 경우 최상위 함수는 main이 되고, 모듈로 불러오는 경우는 자기 자신이 된다.

## test.py ##

print(__name__)
  • case 1
import test

test
test
  • case 2
>>> python3 test.py
__main__



if __name__ == ‘__main__’ 을 사용하는 이유?

다른 python 파일에서 test.py에 있는 add 함수만을 쓰고 싶은 상황이 생겼다고 가정하자. 메인 함수를 선언하지 않으면 아래와 같이 단순히 import 하는 것만으로 원하지 않는 부분까지 실행된다.

## test.py ##

def add(n1, n2):
    return n1 + n2

print(add(3,4))
import test
7

다음과 같이 메인 함수를 선언하면 원하는 부분만 실행시킬 수 있다.

## test.py ##

def add(n1, n2):
    return n1 + n2

if __name__ == '__main__':
    print(add(3,4))
import test

print(test.add(3,4))
7

댓글남기기