- 모듈: 함수나 변수들, 또는 클래스들을 모아놓은 파이썬 파일로 다른 파이썬 프로그램에서 사용할 수 있도록 한 것
- 사용법
1) 기본적인 사용
import 모듈이름
모듈이름.함수이름
모듈이름.함수이름
# module1.py 파일
def sum(a,b):
return a + b
# 대화형 인터프리터에서 수행화면 (module1.py는 동일한 디렉토리에 있어야 한다.)
>>> import module1
>>> module1.sum(2,3)
5
def sum(a,b):
return a + b
# 대화형 인터프리터에서 수행화면 (module1.py는 동일한 디렉토리에 있어야 한다.)
>>> import module1
>>> module1.sum(2,3)
5
2) 모듈이름 붙이기 싫은 경우 (모듈 내에 특정함수만 사용하는 경우)
from 모듈이름 import 모듈함수
# 대화형 인터프리터에서 위의 예제에서 sum(a,b) 함수만 불러오는 경우
>>> from module1 import sum
>>> sum(2,3)
5
>>> from module1 import sum
>>> sum(2,3)
5
3) 모듈이름 불이기 싫은 경우 (모듈 내의 모든 함수 이용하는 경우 - 가장 일반적인 사용 방법)
from 모듈이름 import *
※ 경로 설정
>>> import sys
>>> sys.path
['', 'C:\\Windows\\system32\\python27.zip', .......]
위와 같은 리스트 형태의 설정된 경로를 볼 수 있다.
특정 폴더를 여기에 추가하기 위해서는 아래와 같이 추가하면 된다.
>>> sys.path.append('d:\myPython') # d:\myPython 이라는 폴더를 추가한 예이다.
>>> sys.path
['', 'C:\\Windows\\system32\\python27.zip', .......]
위와 같은 리스트 형태의 설정된 경로를 볼 수 있다.
특정 폴더를 여기에 추가하기 위해서는 아래와 같이 추가하면 된다.
>>> sys.path.append('d:\myPython') # d:\myPython 이라는 폴더를 추가한 예이다.
※ if __name__ == "__main__": 의미
# module2.py
def sum(a, b):
return a+b
def mul(a, b):
return a*b
print sum(2, 3)
print mul(2, 3)
def sum(a, b):
return a+b
def mul(a, b):
return a*b
print sum(2, 3)
print mul(2, 3)
위와 같은 파이썬 파일이 있을 경우 대화형 인터프리터에서 import를 하면 아래와 같은 결과를 보인다.
>>> import module2
5
6
5
6
즉 모듈 내의 모든 문장이 실행되기 때문에 발생하는 것이다.
일반적으로 모듈을 import 하는 경우, 모듈 내의 변수, 함수, 또는 클래스를 사용하기 위해서 이므로 위 모듈에서 마지막 두 줄은 import 될 때는 필요없을 것이다. 이러한 경우에 __name__ == "__main__"을 사용하면 된다.
즉, 위 예제 코드를 아래와 같이 수정한다.
# module2.py
def sum(a, b):
return a+b
def mul(a, b):
return a*b
if __name__ == "__main__":
print sum(2, 3)
print mul(2, 3)
>>> import module2
def sum(a, b):
return a+b
def mul(a, b):
return a*b
if __name__ == "__main__":
print sum(2, 3)
print mul(2, 3)
>>> import module2
import 되는 경우 if 구문이 거짓이 되어 아래 명령 수행되지 않지만, module2.py 파일이 개별적으로 수행될 때는 if 구문이 참이 되어 아래 명령 수행된다.
반응형
'PROGRAMMING > Python' 카테고리의 다른 글
[Python] 예외처리 (Exceptions) (0) | 2011.07.02 |
---|---|
[스크랩]NetBeans 7 + Python 설정 (0) | 2011.06.30 |
[Python] 클래스 (Class) (0) | 2011.06.14 |
[Python] 문자열 관련 함수 (0) | 2011.06.10 |
Python 설치 및 EditPlus 3 설정 (2) | 2011.06.02 |
댓글