본문 바로가기
뇌새김질

[Python] 파일을 모듈로 사용 시 주의할 점(if __name__ == '__main__')

by 파란소스 2021. 7. 21.

모듈이란 함수나 변수 또는 클래스를 모아놓은 파일로 다른 프로그램에서 불러와 사용할수 있다.

#cal.py

def add(a, b):

   reutrn a + b

 

def mul(a, b):

   return a * b

 

# 데이터 검증용 함수 

print(add(2, 4))

print(mul(2, 4))

 

1. 직접 파일  실행

>>>python cal.py

6

8

 

2. 모듈로 사용

#math.py

import cal

 

>>>python math.py

6

8

print(add(2,4)), print(mul(2,4))함수가 자동 실행된다.

 

이처럼 테스트용 또는 검증용 함수실행을 방지하기 위해 if __name__ == '__main__': 을 사용한다.

1. 직접파일 실행시  if __name__ == '__main__':는 참이 되어 if 다음문이 수행되며,

2. 모듈로 사용시 if __name__ == '__main__':는 거짓이되어 if 다음문이 실행되지 않는다.

 

#cal.py

def add(a, b):

   reutrn a + b

 

def mul(a, b):

   return a * b

 

# 데이터 검증용 함수 

if __name__ == '__main__'

   print(add(2, 4))

   print(mul(2, 4))

 

__name__ 변수란?

파이썬의 __name__ 변수는 파이썬이 내부적으로 사용하는 특별한 변수 이름이다. 만약 >>>python cal.py처럼 직접 cal.py 파일을 실행할 경우 cal.py의 __name__ 변수에는 __main__ 값이 저장된다. 하지만 파이썬 셸이나 다른 파이썬 모듈에서 cal 을 import 할 경우에는 cal.py의 __name__ 변수에는 cal.py의 모듈 이름 값 cal 이 저장된다.

>>>import cal

>>>cal.__name__

'cal'