TIL

20220924_TIL : Python __name__, __init__.py

kimbro6 2022. 9. 24. 16:48

#1 서론

어제 배운 내용에 이어서 모듈의 __name__ 변수와 __init__.py 파일을 알아봤다.

 

#2 본론

#2-1 __name__

파이썬의 내장변수인 __name__은 모듈이 직접적으로 실행될 때는 "__main__"이라는 값을 갖게 되고, 다른 파일에 import 됐다면 [파일명]을 갖게 된다.

그래서 모듈이 직접 실행될 때만 실행될 코드를 다음과 같이 작성할 수 있다.

if __name__ == '__main__':
    print('파일 직접 실행됨')

이를 또 응용해서 코드를 깔끔하게 쓸 수 있다. 

=> 파일을 직접 실행했을 때만 실행할 코드를 main() 함수에 저장하면 된다.

예시)
def main():
    [실행하고 싶은 코드]

if __name__ == '__main__':
    main()

 

#2-2 __init__.py

기본으로 알아야 하는 것은 패키지를 import 하면 맨 처음으로 __init__.py가 실행된다는 것이다.

그러므로 __init__.py에서 변수나 함수를 정의해주고, 패키지 안에서 import 해주면 그것들을 자유롭고 깔끔하게 사용할 수 있다. 그리고, 스크립트에서 패키지만 import 했을 때 패키지 안의 모듈들을 자동으로 불러오고 싶다면 다음과 같이 작성할 수 있다.

 

#__init__.py
import [모듈명]
from [모듈명] import [함수명]

#3 결론

보론의 __name__변수 말고도 다른 내장 변수들이 있던데 한번씩 살펴보면 좋을것 같다. (__all__)

 

#4 참고자료

https://lovelydiary.tistory.com/297, https://daun.io/til/2017/01/12/Python-built-in-variables/, https://www.codeit.kr/topics/python-module-and-package