프로그래밍/Python

[Python] if __name__ == "__main__": 란?

Beginner:) 2022. 6. 24.
320x100

먼저 라이브러리나 다른 사람의 소스코드를 보면 아래와 같은 코드를 자주 보았을 것이다.

if __name__ == "__main__":

 

이 코드는 의도치 않게 모듈(스크립트)을 호출할 때 실수로 명령이 실행되는 것을 막기위한 것이다

 


조금만 자세히 설명하자면 

 

나는 계산기 프로그램을 만들것이고 myCalc.py라는 페이지를 작성하였다.

 

더하기 함수를 아래와 같이 작성하였고 테스트하기위해 최하단에 더하기 함수를 호출하였다고 가정하자

 

 - myCalc.py

def add(x, y):
	return x+y

print(add(5, 3))

 

실행은 예상과 같이 8이 나왔고 이 스크립트를 모듈화 할 것이다. 

 

이제 main페이지에서 myCalc.py를 불러온다.

 

- main.py

import myCalc

myCalc.add(10, 20)

 

실행해보면 30이 나와야하지만 실제로는 8과 30이 나온다.

 

그러면 이번엔 myCalc를 조금 수정해본다

 

- myCalc.py

def add(x, y):
	return x+y

if __name__ == "__main__":
	print(add(5, 3))

 

그리곤 다시 main.py를 실행해보면 이전에 출력되던 8이 출력되지 않는다.

 

즉, if __name__ == "__main__":이란 내가 직접 실행한 스크립트일 때 수행하는 제어문인 것이다.

 

다시말하면 myCalc 스크립트를 직접 실행하면  8이 출력되지만 myCalc를 호출하면 __name__의 값이 "myCalc"가 되기 때문에 false의 결과를 낳는다.

반응형

댓글