반응형
__name__ 이란?
파이썬 코드 예제를 살펴 보면 아래와 같은 코드를 종종 볼수 있다.
if __name__ == '__main__':
간단히 설명하면 __name__은 파이썬에 들어가 있는 기본 속성으로 해당 모듈의 위치를 알려 준다.
참고로 파이썬의 기본 속성은 아래와 같이 확인할 수 있다.
print(dir())
# 결과
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
name은 실행이 발생하는 위치인데 아래 예제를 통해 이해해보겠다.
__name__ 예제
print(__name__)
위 코드처럼 test1.py 파일에 print 문을 사용해서 __name__ 을 출력하였다. test2.py를 실행하였다.
__main__
결과는 위처럼 __main__ 이 나왔다. 즉, 해당 모듈파일에서 파이썬을 실행하여서 name 은 main이라는 의미이다.
import test1
print(__name__)
다음은 위 코드를 test2.py라는 파일로 작성하여 실행하였다.
test1
__main__
결과는 위처럼 나왔는데 의미는 import에 의해 test1.py라는 모듈이 먼저 시행되었고 그안에 print를 실행했는데 name이 모듈이름 test1을 가져 온것이다. 그리고 test2.py의 name을 읽어왔는데 파이썬을 test2.py에서 실행하였기 때문에 name이 main이 된 것이다.
즉, name을 사용해서 실행 위치나 모듈명을 확인할 수 있다.
반응형
'파이썬(Python) > 문법' 카테고리의 다른 글
파이썬에서 @(골뱅이, 데코레이터라고 불림)이란? 사용방법과 예제 (2) | 2021.04.22 |
---|---|
파이썬 함수 안에 중첩(nested)해서 함수 넣기 (0) | 2021.04.21 |
JSON 개념, 의미, 사용 목적, Python Flask 와의 연동 예제 설명 (3) | 2021.01.13 |
list copy [:] 리스트안에 콜롬(:) 사용하는 이유 (0) | 2020.12.14 |
파이썬 함수안에 함수, 중첩함수 (0) | 2020.12.11 |