본문 바로가기
Programming Language/Python

[python] __name__ , __main__ / 파이썬 모듈 메인 프로그램화 / 파이썬 기초

by 뒹굴거리는프로도 2023. 9. 16.
반응형

 


 

파이썬에는 특수 변수가 있다. 형태는 '__이름__' 이다.

오늘 다뤄보고자 하는 것은 특수 변수 __name__, __main__ 이다.

특수 변수 __name__은 현재 실행되고 있는 스크립트 이름이 저장되는 변수이며,

특수 변수 '__main__'는 이 __name__의 값으로 사용될 수 있는 문자열이다.

이 '__main__' 문자열은 현재 스크립트가 '메인'으로 실행되었을 때 __name__에 저장된다. 

 

다른 문장으로 두 변수의 관계를 설명하겠다.

파이썬 스크립트를 직접 실행할 때, __name__변수는 '__main__'이라는 문자열 값을 가진다.

이것은 해당스크립트가 메인 프로그램으로 실행되었음을 나타낸다. 

 


 

예를 보자.

보통 파이썬 스크립트 내용은, 그것을 import 한 스크립트를 run 하면 실행된다.

 

[sample.py]

def main() :
 	print("main 함수가 실행되었습니다.")
 
 
main()

 

[run.py]

import sample

print("run.py 실행되었습니다.")

 

sample.py를 import한 run.py를 실행하면 

"main 함수가 실행되었습니다." 와 "run.py가 실행되었습니다." 둘 다 출력된다.

개인 주피터 노트북에서 직접 출력해 보자.

 

하지만 만약 import 한 스크립트의 함수를 바로 실행하기 원하지 않는다면

특수 변수 __name__을 사용한다.

 

[sample.py 수정]

def main() :
 	print("main 함수가 실행 되었습니다.")
 
if __name__ == '__main__'
	main()
    
    #이제 이 안에 있는 함수 main()은
    #이 스크립트를 직접 run해야 실행된다.

 

이제  sample.py를 import한 run.py를 실행해도 

__name__으로 인해 main()이 즉시 실행되지 않음을 확인할 수 있다.

 

sample.py를 직접 실행해야 함수 main()이 실행된다. sample.py가 메인 프로그램의 기능을 하게 된 것이다.

 

반응형