요약


1. 네임스페이스

정의

  • 개체를 구분할 수 있는 범위
  • 이름의 중복을 허용하며 객체의 영향력 범위를 제한

네임스페이스 종류:

  1. 지역(Local): 함수(메소드)별로 구분
  2. 글로벌(Global): 모듈 단위로 구분
  3. 빌트인(Built-in): 전체 코드 범위

객체 참조 순서: Local → Global → Built-in (역순 참조 불가)


2. 사용 이유

__name__은 해당 파일을 직접 실행할 때 '__main__'을 반환하고, 모듈로 import 될 때는 모듈 이름을 반환한다.

# example.py
if __name__ == "__main__":
    print("Hello world!")
 
# main.py
import example
print("I'm not feeling well")
# output: "I'm not feeling well" (Hello world! 출력 안 됨)

if __name__ == "__main__"을 사용하면 import 시 불필요한 코드 실행을 방지한다.


참고사이트