Python 07.모듈과 패키지

1. 모듈

파이썬 인터프리터에 의해 해석되어 실행되는 코드 집합. 하나의 프로그램으로 동작할 수 있다.

import 모듈명

으로 사용할 수 있다.

  • . (접근지정자)를 통하여 모듈의 함수, 변수에 접근 가능.
  • 모듈명.변수명 , 모듈명.함수명() 과 같이 사용.
  • 모듈을 불러올때, 모듈 코드가 전체적으로 한번 수행함.
  • 모듈은 독립적인 이름공간을 갖는다.
  • 모듈을 불러올 땐, sys.path에 있는 경로들을 순서대로 검색하여 불러옴.

__name__ 변수

파이썬 프로그램을 실행할 때 모듈에서 자동적으로 만들어지는 변수 중 하나.

python test.py # 바로 실행시키면 __name__은 __main__

import test # import 해서 불러온 모듈의  __name__은 __name__이 아니다

from

from 모듈명 import 함수명

from 을 사용하여 바로 모듈 내에 바로 접근할 수 있다.
위의 코드를 실행시키면 모듈명.함수명()으로 함수를 호출하는게 아니라,
함수명() 으로 바로 호출할 수 있다.

as

import sample as sp		# as를 이용해 모듈을 다른 이름으로 접근가능.
sp.sample_func()

2. 패키지

모듈의 유기적인 사용을 위해 모듈들을 모아둔 특별한 폴더.

  • 패키지는 패키지로 만들 폴더에 __init__.py 만 넣어주면 패키지로 인식된다.
  • 패키지에 속한 모듈은 패키지명.모듈명 으로 접근

__init__.py

패키지의 초기화를 담당.

improt 혹은 from ~~ import ~~ 구문으로 패키지,모듈을 불러오면 import문에 명시된 모든 패키지의 __init__.py 가 실행된다.

__all__

패키지에 포함된 하위 패키지와 모듈을 불러올 때 *을 사용하면 쉽게 불러올 수 있다.
하지만 모든 이름을 불러오기 때문에 낭비가 될 수 있다.

그러므로 __all____init__.py에 정의하여 원하는 이름만 불러오도록 할 수 있다.

from pkg import module1
from pkg import module2

__all__ = ['module1']		# 원하는 이름만

__main__.py

패키지 테스트를 위한 실행을 하게해주는 모듈.
패키지 안에 __main__.py를 넣고 패키지를 실행하면 __main__.py의 코드가 실행된다.

python -m pkg	# -m 옵션을 주면 패키지 실행가능

~~~~
~~~~
~~~~			# `__main__.py`에 정의한 코드실행

Comments