파이썬에는 특수 변수가 있다. 형태는 '__이름__' 이다.
오늘 다뤄보고자 하는 것은 특수 변수 __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가 메인 프로그램의 기능을 하게 된 것이다.
'Programming Language > Python' 카테고리의 다른 글
[python] 파이썬 / logging / 로그 포맷 설정 (0) | 2023.09.23 |
---|---|
[python] 파이썬 / getLogger() / 로그 출력하기 (0) | 2023.09.23 |
[python] __init__.py / 모듈 패키지 만들기 / 파이썬 기초 (0) | 2023.09.15 |
[python] import / 파이썬 모듈 만드는 방법 / 파이썬 기초 (0) | 2023.09.15 |
[Python] 에러 : Object of type int64 is not JSON serializable (0) | 2023.09.12 |