[Python] __name__ 내장변수에 대해서

SCY·2023년 2월 24일
0
post-thumbnail

지금껏 나는 Flask에 대해 공부한 적 없지만 웹해킹을 공부하며 자연스레 익혀왔었다. 이번 졸업 프로젝트를 시작하며 플라스크를 제대로 공부할 수 있는 기회가 주어졌고 파이썬과 관련하여 좀 더 깊이 있는 지식을 얻고자 한다.

__name__ 변수의 사용

코드를 분석하다 보면, 파이썬은 시작점이 없는 스크립트 언어인데도

if __name__ == '__main__' :

로 main 함수의 역할을 하는 코드를 자주 볼 수 있었다. 뭐 그냥 메인함수라 생각하면 되겠지 넘어갔었다.

이 변수는 또 다른 곳에서도 볼 수 있는데, 플라스크 코드의 시작 부분에서 항상 등장했다. 플라스크 코드는 보통

app = Flask(__name__)

위 코드로 시작되었다.

그렇다면 __name__ 변수 안에는 어떤 값이 담겨 있을까?

__name__에 담긴 값

test.py 파일을 만든 후

print(__name__)

위 코드를 실행해보니 아래의 값이 출력되었다.

__main__

실행 파일의 __name__에는 '__main__'이라는 값이 들어가는구나!

다음으로는 main.py 파일을 만든 후

import test

print(__name__)

위에서 작성해놓은 test.py를 임포트하여 실행해보니

test
__main__

임포트된 모듈의 __name__과 실행 파일의 __name__이 출력되었다.

정리

__name__ 변수는 따로 선언하지 않고도 사용이 가능한 것을 보니 파이썬의 내장 변수이다. 이 변수는 해당 파일의 이름, 즉 모듈의 이름이 담긴다. 실행되는 파일에서는 __main__ 값이 담긴다.

따라서

if __name__ == '__main__' :

이 코드는 '이 파일이 실행되는 파일이면'이라는 뜻으로 해석할 수 있겠다. 나의 감으로 해석했던 내용이 어느정도는 맞다고 볼 수 있겠다. (뿌듯)

또한

app = Flask(__name__)

위 코드는 현재 위치를 flask 객체에 알려주는 코드로 볼 수 있겠다.


profile
성장 중독 | 서버, 데이터, 정보 보안을 공부합니다.

0개의 댓글