지금껏 나는 Flask에 대해 공부한 적 없지만 웹해킹을 공부하며 자연스레 익혀왔었다. 이번 졸업 프로젝트를 시작하며 플라스크를 제대로 공부할 수 있는 기회가 주어졌고 파이썬과 관련하여 좀 더 깊이 있는 지식을 얻고자 한다.
코드를 분석하다 보면, 파이썬은 시작점이 없는 스크립트 언어인데도
if __name__ == '__main__' :
로 main 함수의 역할을 하는 코드를 자주 볼 수 있었다. 뭐 그냥 메인함수라 생각하면 되겠지 넘어갔었다.
이 변수는 또 다른 곳에서도 볼 수 있는데, 플라스크 코드의 시작 부분에서 항상 등장했다. 플라스크 코드는 보통
app = Flask(__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 객체에 알려주는 코드로 볼 수 있겠다.
끝