티스토리 뷰
목차
모듈 (module)
하나의 파이썬 스크립트 파일은 모듈로 취급할 수 있습니다. 모듈은 import 문으로 로드합니다. 읽은(로드한) 모듈의 클래스, 함수, 변수는 "모듈명.식별자"로 참조할 수 있습니다.
아래 프로그래밍 예제를 참조하세요.
1 2 | def myfunc(): print "Hello!" | cs |
1 2 3 | import mymod mymod.myfunc() #=> Hello! | cs |
python 모듈의 시작 부분에는 """..."""를 이용해 파이썬 문서 문자열(도큐먼트 스트링)을 작성할 수 있습니다.
1 2 3 | # coding: utf-8 """A sample module""" (생략) | cs |
패키지 (package)
여러 모듈을 종합해 패키지로 처리할 수 있습니다. python 패키지는 __init__.py라는 파일이 있는 폴더, 모듈은 .py 파일입니다.
__init__.py에는 패키지 초기화 처리 방법을 기술합니다. 없으면 비워 두어도 괜찮습니다. 아래 파이썬 예제에는 mypack1 패키지에 mypack2 패키지가 있고, mypack2 패키지에 mymod.py 모듈이 배치되어 있습니다.
1 2 3 4 5 | 폴더 mypack1/ 파일 __init__.py 폴더 mypack2/ 파일 __init__.py 폴더 mymod.py | cs |
가져오기 임포트 (import)
패키지 중에서 모듈이나 식별자(클래스, 함수, 변수 ...)를 Import (가져오려면) 하려면 아래와 같이합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # import 패키지. 모듈 import mypack1.mypack2.mymod mypack1.mypack2.mymod.myfunc() # from 패키지 import 모듈 from mypack1.mypack2 import mymod mymod.myfunc () # from 패키지 import * from mypack1.mypack2 import * # __all__ 설정이 필요 mymod.myfunc () # from [패키지] 모듈 import 식별자 from mypack1.mypack2.mymod import myfunc myfunc () # from [패키지] 모듈 import * from mypack1.mypack2.mymod import * myfunc () | cs |
위 프로그래밍 예제에서 "from package import *" 형식을 사용하려면, mypack2 패키지의 __init__.py 파일에 로드되는 모듈 목록을 __all__에 정의해야 합니다.
1 | __all__ = ["mymod"] | cs |
임포트(로드)할 모듈 및 파이썬 식별자 여러개를 기술할 수도 있습니다.
1 2 3 4 5 | import mypack1.mypack2.mymod1, mypack1.mypack2.mymod2 from mypack1.mypack2 import mymod, mymod2 from mypack1.mypack2 import (mymod, mymod2) from mypack1.mypack2.mymod import myfunc1, myfunc2 from mypack1.mypack2.mymod import (myfunc1, myfunc2) | cs |
로드할 모듈 이름과 식별자에 별명을 붙일 수도 있습니다.
1 2 3 4 5 6 7 8 | import mypack1.mypack2.mymod as mymod1 mymod1.myfunc() from mypack1.mypack2 import mymod as mymod2 mymod2.myfunc() from mypack1.mypack2.mymod import myfunc as myfunc1 myfunc1() | cs |
from은 . 와 ..를 사용하여 파이썬 패키지 상대 경로를 잡을 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 | # 이 패키지에서 mymod 모듈을 import from . import mymod # 한 계층 위의 패키지에서 mymod 모듈 import from .. import mymod # 두 계층 위의 패키지에서 mymod 모듈 import from ... import mymod # 두 계층 위 mypack4 패키지에서 mymod 모듈 import from ...mypack4 import mymod | cs |
패키지 이름 (__package__)
__package__ 는 현재의 python 패키지 이름을 나타냅니다.
1 | print __package__ | cs |
파일 이름 (__file__)
__file__ 현재 python 파일 이름을 나타냅니다.
1 | print __file__ | cs |
모듈 이름 (__name__)
__name__은 현재 모듈 이름을 나타냅니다. 스크립트로 시작되는 메인 모듈의 경우 __main__이라는 이름으로 설정됩니다. 아래 예제는 파일이 python 명령어로 직접 실행한 경우에만 수행할 작업 처리합니다.
1 2 | if __name__ == "__main__": test() | cs |
내장 모듈 빌트인 (__builtin__)
__builtin__는 open() 등의 python 내장(빌트인) 객체를 포함하는 가상 모듈을 나타냅니다.
1 2 3 4 | import __builtin__ for line in __builtin__.open("test.txt"): print line | cs |
파이썬 입문 강좌 11강
- 자료형 문자열 각종 수식 정리
- 변수, 상수, 문서문자열(python docstring)
- 리스트 튜플 딕셔너리 (List, Tuple, dict)
- 제어문 - if else while for in break continue
- with assert pass del print exec 사용법
- 예외 처리 방식과 스택 추적 구현 방법
- 구문 - 문법, 주석, 들여쓰기, 인코딩 규칙
- 연산자 - 산술 비트 대입 비교 논리 조건
- def, global, lambda, iterator, yield @ 사용 방법
- 인스턴스, 메소드, 상속 등 예제 총정리
- 모듈 패키지 - 빌트인 파일 이름 사용 예제
관련 글
[파이썬 입문 클래스] 인스턴스, 메소드, 상속 등 예제 총정리
[파이썬 입문] 연산자 - 산술 비트 대입 비교 논리 조건
[파이썬 입문] with assert pass del print exec 사용법