[Python] __init__

2491 단어 pythonpython

init.py란?

- __init__.py 파일은 해당 디렉토리가 패키지의 일부임을 알려주는 역할을 한다. 
- 또한 패키지를 초기화 하는 역할을 함
- 디렉토리에 __init__.py 파일이 없다면, 패키지로 인식되지 않을 수도 있다.
- import 할 때 경로의 길이를 줄여준다
  • package를 import하면 자동으로 __init__.py 파일을 불러오기 때문에, 만약 __init__.py안에 패키지 내 다른 모듈을 미리 import 하면, __main__.py에서 다른 모듈들을 import하지 않아도 된다.

  • 디렉토리가 import .from *문 형식으로 가져와 질 때, 내보내지는 것을 정의하기 위해, __init__.py 파일에 __all__ 목록을 넣어서 사용할 수 있다.
    이 패키지 이름에 사용될 때, 자동으로 가져와야 하는 하위 모듈 이름의 목록으로 간주한다.
    (import될 때 꼭 먼저 실행되어야 하는 코드들을 관리)

import할 요소들을 string으로 list에 선언

# __init__.py
from .m1 import func1
from .m2 import class2

__all__ = ['func1', 'class2'] #list of str
# main.py
from pkg1 import *

result = class()
func1()

func2() # 패키지 안의 모듈에 있더라도, __all__ 에 정의되지 않아서 import 할 수 없다


#어떤 속성이 반영되어 있는지 알 수 있다
import module1
print(dir()) 

좋은 웹페이지 즐겨찾기