일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 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 |
Tags
- 구글애널리틱스
- 구글애널리틱스가이드
- 파킹통장
- 마케팅
- 파이썬정규표현식
- 파이썬문자열
- GA가이드
- 유튜브
- 책추천
- GA설치
- 구글애널리틱스4
- GA공부
- 카페24
- 파킹통장추천
- 파이썬
- 파이썬내장함수
- 파이썬함수
- 페이스북광고
- 구글애널리틱스공부
- 유튜브광고
- 파이썬프로그래밍
- 메이크샵
- 구글ads
- GA4
- 구글애널리틱스강의
- 국민내일배움카드
- 파이썬공부
- 신용카드추천
- GA
- GA강의
Archives
- Today
- Total
정리왕
파이썬 패키지2 (__init__.py의 용도) 본문
반응형
파이썬 패키지2 (__init__.py의 용도)
__init__.py 파일은 해당 디렉터리가 패키지의 일부임을 알려주는 역할을 한다.
만약 game, sound, graphic 등 패키지에 포함된 디렉터리에 __init__.py 파일이 없다면 패키지로 인식되지 않는다.
다음을 따라 해 보자.
>>> from game.sound import *
>>> echo.echo_test()
Traceback <most recent call last):
File"<stdin>", line 1, in <module>
NameError: name 'echo'is not defined
뭔가 이상하지 않은가?
분명 game.sound 패키지에서 모든 것(*)을 import하였으므로 echo모듈을 사용할 수 있어야 할 것 같은데
echo라는 이름이 정의되지 않았다는 이름 오류(NameError)가 발생했다.
이렇게 특정 디렉터리의 모듈을 *를 사용하여 import할 때에는 다음과 같이 해당 디렉터리의 __init__.py 파일에 __all__ 변수를 설정하고 import 할 수 있는 모듈을 정의해 주어야 한다.
# C:/doit/game/sound/__init__.py
__all__=['echo']
여기에서 __all__ 이 의미하는 것은 sound 디렉터리에서 * 기호를 사용하여 import할 경우 이곳에 정의된 echo 모듈만 import 된다는 의미이다.
반응형
'6.개발 > 파이썬 공부하기' 카테고리의 다른 글
파이썬 내장함수 1 (0) | 2020.12.05 |
---|---|
파이썬 예외처리 (0) | 2020.12.05 |
파이썬 패키지1 (패키지란 무엇인가?) (0) | 2020.12.01 |
파이썬 모듈 4 (다른 파일에서 모듈 불러오기) (0) | 2020.12.01 |
파이썬 모듈 3 (클래스나 변수 등을 포함한 모듈) (0) | 2020.12.01 |
Comments