[Python] __name__

2024. 2. 14. 12:11·IT/Python

__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
'IT/Python' 카테고리의 다른 글
  • Python - 자료구조
  • [Python] 동시성 프로그래밍과 병렬성 프로그래밍
  • [Python] 지역변수와 전역변수
  • [Python] 함수에서 return 사용하는 이유
생각 기록실
생각 기록실
AI(LLM)와 서비스 기획을 공부하며 작성하는 기술 블로그입니다. (feat. 영화리뷰를 곁들인..)
    반응형
  • 생각 기록실
    이러쿵 저러쿵
    생각 기록실
  • 전체
    오늘
    어제
  • 링크

    • Github
    • LindeIn
    • 분류 전체보기 (115)
      • 이러쿵 저러쿵 (5)
      • 정보통계 (7)
        • 데이터마이닝 (2)
        • 금융공학 (4)
      • IT (26)
        • Python (10)
        • AWS (5)
        • Github (2)
        • Project (8)
      • 리뷰 (29)
        • 영화 (22)
        • 책 (7)
      • 기타 (48)
  • hELLO· Designed By정상우.v4.10.3
생각 기록실
[Python] __name__
상단으로

티스토리툴바