/************************************************************************************************
-- Title : [PY2.7.11] 패키지 사용 및 init 파일
-- Reference : itsdong.com
-- Key word : 패키지 package pythonpath init 파일 __init__ 절대경로 상대경로
************************************************************************************************/
# -*- coding: utf-8 -*-
# ---------------------------------------
# -- 패키지 사용 테스트
# ---------------------------------------
# -- 디렉토리 설정
# C:\Python\AAA\BBB\CCC
# 각 폴더마다 __init__.py 빈 파일 생성
# -- BBB 폴더에
>>> def test_bbb()
>>> print('bbb')
# -- CCC 폴더에
>>> def test_ccc()
>>> print('ccc')
# -- Python Path 설정
C:\> set PYTHONPATH=c:\python
C:\> python
>>> import AAA.BBB.bbb
>>> AAA.BBB.bbb.test_bbb()
bbb
>>>
>>> from AAA.BBB import bbb
>>> bbb.test_bbb()
bbb
>>>
>>> from AAA.BBB.bbb import test_bbb
>>> test_bbb()
bbb
>>>
# -- __init__.py
# 3.3 이전에는 init 파일이 없으면 패키지 인식 안됨.
# 3.3부터는 init 파일이 없어도 인식됨.
# 하위 버전과 호환을 위해 init 파일 생성 권고.
>>> from AAA.BBB import *
>>> bbb.test_bbb()
bbb
>>>
# -- from 패키지.패키지(폴더) import * : 모듈 의미
# from 패키지.패키지.모듈 import * : 함수 의미
# -- 특정 디렉토리의 모듈을 *을 이용해서 import시
# __init__.py에 __all__ = ['bbb']를 입력하면
# bbb만 호출됨.
>>> from AAA.BBB.bbb import *
>>> test_bbb()
bbb
>>>
# -- CCC폴더에서 test_bbb() 호출시
# ccc.test_ccc 수정
>>> from AAA.BBB.bbb import test_bbb
>>> def test_ccc()
>>> test_bbb()
>>> print('ccc')
>>> import AAA.BBB.CCC.ccc import test_ccc
>>> bbb
>>> ccc
# -- 상대 경로를 이용해서 test_bbb() 호출시
# ccc.test_ccc 수정
>>> from ..bbb import test_bbb
>>> def test_ccc()
>>> test_bbb()
>>> print('ccc')
>>> import AAA.BBB.CCC.ccc import test_ccc
>>> bbb
>>> ccc