요약
1. 네임스페이스
정의
- 개체를 구분할 수 있는 범위
- 이름의 중복을 허용하며 객체의 영향력 범위를 제한
네임스페이스 종류:
- 지역(Local): 함수(메소드)별로 구분
- 글로벌(Global): 모듈 단위로 구분
- 빌트인(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 시 불필요한 코드 실행을 방지한다.
참고사이트