본문 바로가기
PROGRAMMING/Python

[Python] 모듈 (Modules)

by BLADEBONE 2011. 6. 16.
  • 모듈: 함수나 변수들, 또는 클래스들을 모아놓은 파이썬 파일로 다른 파이썬 프로그램에서 사용할 수 있도록 한 것

 

  • 사용법


1) 기본적인 사용

import 모듈이름

모듈이름.함수이름

 

# module1.py 파일
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



3) 모듈이름 불이기 싫은 경우 (모듈 내의 모든 함수 이용하는 경우 - 가장 일반적인 사용 방법)

from 모듈이름 import *





※ 경로 설정

>>> import sys
>>> 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)


위와 같은 파이썬 파일이 있을 경우 대화형 인터프리터에서 import를 하면 아래와 같은 결과를 보인다.

>>> import module2
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


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

댓글