728x90
반응형
다른 사람들이 작성한 소스코드를 열어볼 때
if __name__ == '__main__':
과 같은 문법을 자주 접하셨을겁니다.
어떤 의미를 갖고 있는 문법인지 알아보겠습니다.
__name__
일반적으로 파이썬 스크립트 파일인 py파일은 파일의 이름 자체를 모듈 이름으로 사용합니다.
if __name__ == '__main__':
결국 위의 if문에서 판단하는 것은 모듈로 사용되는지 직접 실행되는지를 판단하는 조건문입니다.
- 스크립트 프로그램이 직접 실행될 때 변수 __name__은 '__main__'입니다.
- 스크립트 프로그램이 임포트될 때 변수 __name__은 원래의 모듈 이름입니다.
hello.py와 main.py를 작성하여 확인해보겠습니다.
hello.py를 직접 실행했을 때
print('hello 모듈 시작')
print('hello.py __name__:', __name__) # __name__ 변수 출력
print('hello 모듈 끝')
hello 모듈 시작
hello.py __name__: __main__
hello 모듈 끝
hello.py 파일을 직접 실행했을 때 __name__ 변수가 __main__으로 출력되는 것을 확인할 수 있습니다.
main.py을 직접 실행했을 때
import hello # hello 모듈을 가져옴
print('main.py __name__:', __name__) # __name__ 변수 출력
hello 모듈 시작
hello.py __name__: hello # 모듈이름을 출력
hello 모듈 끝
main.py __name__: __main__ # __main__출력
main.py에서 hello.py를 임포트 시켰을때 __name__ : hello 로 출력되는 것을 확인했습니다.
py 파일을 작성할 때는 직접 실행할 지 모듈을 임포트할 지 고려하여
if __name__ == '__main__': 구문을 사용하여야겠다.
참조 : https://dojang.io/mod/page/view.php?id=2448
반응형
'IT > [Python]' 카테고리의 다른 글
[Python] 구글에서 이미지를 수집 해보자 (selenium) (0) | 2022.02.24 |
---|---|
[Python] 시각화 관련 참고 자료 링크 (0) | 2022.01.24 |
[Python] 이해하면 편리한 map함수 (0) | 2022.01.04 |
[Python] 두 리스트를 비교하고 싶을 때? zip함수 (0) | 2022.01.04 |
[Python] 파이썬 내장 자료구조 tuple (0) | 2021.12.30 |