Python | 모듈과 패키지

Sua·2021년 1월 16일
0

Python

목록 보기
25/28
post-thumbnail
post-custom-banner

모듈

파이썬에서 모듈(module)은 변수나 함수 그리고 클래스 등을 모아놓은 파일이다.

따로 모듈로 모아놓은 이유는 다음과 같다.

  • 다른 파일에서 재사용이 가능하게 하고
  • 전체 코드가 한 파일에 넣기에는 너무 커졌을때 여러 파일로 나누어서 정리를 하기 위해서

모듈 가져오기

  • import 모듈
    호출 시 : 모듈.변수/함수()/클래스()
    -> 원하는 변수/함수/클래스를 해당 모듈 이름과 연결해서 호출을 해줘야 한다.
  • from 모듈 import 변수/함수/클래스
    호출 시 : 변수/함수()/클래스()
    -> from import 키워드를 사용하여 모듈을 불러들이는 경우 모듈 이름을 붙이지 않고 곧바로 원하는 함수나 변수 그리고 클래스를 호출할 수 있다.
  • from 모듈 import *
    -> 모듈의 모든 변수/함수/클래스를 가져온다.
  • import 모듈 as 이름
    from 모듈 import 변수 as 이름1, 함수 as 이름2, 클래스 as 이름3
    -> 모듈/변수/함수/클래스는 as를 사용해 새로운 이름으로 사용할 수 있다.

패키지

패키지(package)란 특정 기능과 관련된 여러 모듈을 묶은 것이다.

파이썬 파일들로 이루어져 있는 디렉토리(directory)가 하나의 패키지가 된다. 그리고 디렉토리 이름이 패키지 이름이 된다.

패키지 가져오기

패키지는 일반 모듈처럼 import 하여 사용할 수 있다. 다만 차이점은 클래스 객체를 사용할때 처럼 "dot notation" 으로 해당 패키지의 원하는 모듈을 import 하면 된다.

import pkg.mod1
from pkg.mod2 import func2
 
pkg.mod1.func2()
func2()

Package Initialization

가끔은 패키지가 import 될때 초기 설정을 해줘야 할때가 있다. 파이썬은 __init__.py 파일을 통해 패키지 초기 설정을 가능하게 해준다. (패키지가 import 될 때 __init__.py 파일의 코드가 자동으로 실행된다.)

__init__.py파일을 통해 다음과 같은 일을 할 수 있다.

  • Import 할때 경로의 총 길이 줄여주기

# __init__.py
from .mod1 import func2
# main.py
from pkg import func2
 
func2()
  • Package에서 import 할 수 있는 변수/함수/클래스 제한하기

    내부적으로만 사용되어야 하는 함수가 package 외부에서 import되어 사용되는 것을 막기 위해서는 __all__ 변수를 지정해 줄 수 있다. __all__ 변수의 default 값은 모든 함수/변수/클래스 인데, __all__ 변수를 따로 정의해줌으로 import 될 수 있는 요소들을 제한하는 것이다.
    (__all__ 변수는 string 요소를 가진 list이다.)
# __init__.py
from .mod1 import func2
from .mod2 import func3
 
__all__ = ['func2', 'func3']
# main.py
from pkg import *
 
func2()
func3()
func4() ## <== Error. func4 함수는 __all__ 에 정의되지 않았으므로 import 될 수 없음.
  • 그 외 package가 import될때 꼭 먼저 실행되어야 하는 코드들

다른 사람의 패키지 사용하기(pip)

파이썬에서 패키지를 설치하려면 pip이라는 툴을 사용하면 된다. pip은 파이썬의 package manager이다. 만약 Django라는 패키지를 설치하려면 터미널에서 다음 명령어를 사용하면 된다.

pip install Django 
profile
Leave your comfort zone
post-custom-banner

0개의 댓글