__name__ 변수란?
파이썬 파일이 어떻게 사용되는지에 따라 다른 값을 가지는 특별한 변수.
이 변수는 크게 두 가지로 나뉨
- 파일을 직접 실행하는 경우:
파일을 직접 실행하면, name은 'main'이 됨.
즉, 이 파일이 메인 프로그램이라는 뜻. - 파일을 다른 파일에서 불러오는 경우(임포트하는 경우):
다른 파일에서 이 파일을 불러와서 사용하면, name은 그 파일의 이름이 된다.
사용 예시
hello.py
# hello.py 파일
def say_hello():
print("Hello, world!")
if __name__ == "__main__":
say_hello()
main.py(hello.py를 import하는 파일)
import hello
# hello.py의 say_hello 함수를 실행하기 위해 명시적으로 호출
hello.say_hello()
실행 방법과 결과
직접 실행할때:
- 명령어: python hello.py
- 결과: "Hello, world!" 출력. 이때 hello.py의 name 변수는 'main'.
다른 파일에서 import할 때:
- import hello를 사용하면 say_hello() 함수는 자동으로 실행되지 않는다.
- 이 경우, hello.py 파일의 name은 'hello'가 됨
- main.py에서 import hello 후 hello.say_hello()를 호출하면 "Hello, world!"가 출력.
main.py를 실행하면 hello.py의 if name == "main": 블록은 실행되지 않지만, hello.say_hello() 함수는 명시적으로 호출되어 결과가 출력.
추가설명
name 변수를 사용하는 이유는, 스크립트 파일이 직접 실행되는 상황과 다른 파일에서 모듈로 임포트되어 사용되는 상황을 구분하기 위함
이를 통해, 모듈을 재사용할 때 발생할 수 있는 불필요한 코드 실행을 방지하고, 스크립트 파일이 독립적으로도 유용하게 사용될 수 있도록 함.
반응형
'IT > Python' 카테고리의 다른 글
Python - 알고리즘 (선형검색,이진검색) (1) | 2024.02.26 |
---|---|
Python - 자료구조 (0) | 2024.02.22 |
[Python] 동시성 프로그래밍과 병렬성 프로그래밍 (1) | 2024.02.19 |
[Python] 지역변수와 전역변수 (0) | 2024.02.13 |
[Python] 함수에서 return 사용하는 이유 (0) | 2024.02.13 |