"Python 패키지"의 두 판 사이의 차이

64번째 줄: 64번째 줄:
</source>
</source>
:→ '''개별 모듈 불러오기1''' 방법과 달리 접두어(패키지 경로) 생략 가능
:→ '''개별 모듈 불러오기1''' 방법과 달리 접두어(패키지 경로) 생략 가능
3. 개별 모듈 불러오기3
*모듈 불러오기
<source lang="python">
import sound.effects.echo import echofilter
</source>
*모듈 사용하기
<source lang="python">
echofilter(input, output, delay=0.7, atten=4)
</source>
:→ 곧장 사용이 가능함


==참고 자료==
==참고 자료==

2017년 3월 13일 (월) 17:40 판

1 개념

파이썬 패키지
Python Package
  • 패키지는 모듈을 구성하기 위한 하나의 방법
  • 점(Dot)를 이용하여 구성함
모듈 이름 A.B가 있다면 A패키지는 B모듈을 서브모듈로 가진다고 생각하면 됨
  • 모듈 상호가 전역변수에 의한 이름 충돌을 막을 수 있음

2 예시

sound/                          Top-level package
      __init__.py               Initialize the sound package
      formats/                  Subpackage for file format conversions
              __init__.py
              wavread.py
              wavwrite.py
              aiffread.py
              aiffwrite.py
              auread.py
              auwrite.py
              ...
      effects/                  Subpackage for sound effects
              __init__.py
              echo.py
              surround.py
              reverse.py
              ...
      filters/                  Subpackage for filters
              __init__.py
              equalizer.py
              vocoder.py
              karaoke.py
              ...

3 sys.path

  • 패키지를 import 할 때 파이썬은 sys.path에 작성된 디렉토리를 기준으로 패키지 디렉토리를 찾음

4 __init__.py

  • __init__.py파일은 파이썬이 패키지가 담겨있는 디렉토리를 패키지로 취급하도록 해줌.
  • 패키지를 위한 초기화 코드가 들어가기도 함.
  • __all__ 변수를 설정하여 import시 어느 범위까지 모듈을 가져올지 정할 수 있음

5 패키지 모듈 사용하기

1. 개별 모듈 불러오기1

  • 모듈 불러오기
import sound.effects.echo
  • 모듈 사용하기
sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)
→ 사용시 전체 경로를 모두 필요함

2. 개별 모듈 불러오기2

  • 모듈 불러오기
import sound.effects import echo
  • 모듈 사용하기
echo.echofilter(input, output, delay=0.7, atten=4)
개별 모듈 불러오기1 방법과 달리 접두어(패키지 경로) 생략 가능

3. 개별 모듈 불러오기3

  • 모듈 불러오기
import sound.effects.echo import echofilter
  • 모듈 사용하기
echofilter(input, output, delay=0.7, atten=4)
→ 곧장 사용이 가능함

6 참고 자료

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}