달력

3

« 2020/3 »

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

댓글을 달아 주세요

 


Exception 계층도 (Exception hierarchy)

https://docs.python.org/3.6/library/exceptions.html#exception-hierarchy



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

로그 수준(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
types  (0) 2020.03.10
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

예외의 종류

NameError

·       선언하지 않은 변수 'x'에 접근

·       NameError: name 'x' is not defined

 

 

 

 

 

ZeroDivisionError

·       '0'으로 나눔

·       ZeroDivisionError: division by zero

 

 

 

 

 

IndexError

·       리스트의 접근 가능한 인덱스를 넘음

·       시퀀스 자료형이 범위를 벗어난 인덱스 참조 요구시에 발생시킴

·       리스트, 튜플, 문자열등에서도 동일한 조건에서 발생됨

·       IndexError: list index out of range

 

 

 

 

 

TypeError

·       지원하지 않는 연산(정수를 문자열로 나눔)

·       TypeError: unsupported operand type(s) for /: 'int' and 'str'

 

 

 

 

 

ValueError

·       입력받은 문자열 숫자를 숫자자료형인 int float 변환할 없을 발생됩니다.

·       , 숫자로 변환할 없는 문자열을 변환하려고 할때 발생합니다.

·       ValueError: invalid literal for int() with base 10: 'a1000'

 


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

__init__.py  (0) 2020.03.11
Exception 계층도 (Exception hierarchy)  (0) 2020.03.11
예외의 종류  (0) 2020.03.11
shutil 모듈  (0) 2020.03.10
types  (0) 2020.03.10
tempfile  (0) 2020.03.10
Posted by codedragon codedragon

댓글을 달아 주세요