달력

7

« 2020/7 »

  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
2020. 3. 11. 08:52

__init__.py Development/Python


 

 

 

__init__.py

·       패키지 디렉토리에는 일반적으로 __init__.py 라는 패키지 초기화 파일이 존재합니다.

·       __init__.py 파일은 해당 디렉터리가 패키지의 일부임을 알려주는 역할을 합니다. , 일반 디렉토리와 패키지 디렉토리를 구분시켜주는 역할을 합니다.

·       만약 패키지에 포함된 디렉터리에 __init__.py 파일이 없다면 패키지로 인식되지 않습니다. (python3.3 버전 이전)

·        python3.3 버전부터는 __init__.py 파일 없이도 패키지로 인식이  됩니다(PEP 420). 하지만 하위 버전 호환을 위해 __init__.py 파일을 생성하는 것이 좋습니다.

·       하위버전의 패키지 디렉토리에 __init__.py 파일이 없으면 임포트 오류(ImportError) 발생합니다.

·       __init__.py 파일에 패키지를 초기화하는 파이썬 코드를 넣을 수 있습니다.

 

PEP 420 -- Implicit Namespace Packages

https://www.python.org/dev/peps/pep-0420/

 

 

 

 

__all__ 키워드 변수

·       해당 패키지 디렉터리에서 * 기호를 이용하여 import 경우 __all__ 정의된 모듈만 import됩니다.

·       "from 패키지명 import *" 문을 사용할 때, 그 패키지 내에서 import 가능한 모듈들의 리스트를 담고 있습니다. 그래서, __all__ 에 없는 모듈은 import 되지 않고 에러가 발생하게 됩니다.

 

__all__ = ['모듈명']

 

 

 

패키지안의 모든 모듈 임포트

from 패키지명 import *

 

 




'Development > Python' 카테고리의 다른 글

sys.path.append()  (0) 2020.03.11
로그 수준(level)  (0) 2020.03.11
__init__.py  (0) 2020.03.11
Exception 계층도 (Exception hierarchy)  (0) 2020.03.11
예외의 종류  (0) 2020.03.11
shutil 모듈  (0) 2020.03.10
Posted by codedragon codedragon

댓글을 달아 주세요