본문 바로가기
코딩 이야기/파이썬(Python)

단도직입 파이썬(Python) – 모듈(Module)

by 아재코더 2021. 12. 16.
파이썬 - 모듈(Module)
 

모듈(Module)이란 클래스, 함수 또는 변수를 모아 놓은 파일입니다. 우리가 파이썬 코딩을 무사히? 마치고 *.py로 저장하게 되는데 이 모든 *.py 파일이 바로 모듈입니다. 기존에 작성했던 파이썬 파일내 함수나 클래스를 다른 프로그램 코딩 때 import명령어로 호출하여 사용할 수 있도록 합니다.

다음과 같은 module_test.py를 작성하여 저장합니다.

# Module_Test.py

def add(a,b):

return a+b

def sub(a,b)

return a-b

 

Module_Test.py가 저장된 디렉토리에서 파이썬을 실행하여 프롬프트를 띄워봅니다.

import 명령어로 Module_Test.py에서 작성된 함수 add, sub를 호출하여 사용했습니다.

import 모듈이름

import로 모듈을 호출한 후 함수를 아래와 같은 문법으로 사용합니다.

모듈명.함수명

ex) module_test.add 처럼 dot( . ) 연산자를 사용합니다.

상기 예와 같이 모듈 내 모든 함수를 불러올 수도 있고, 특정 함수만 불러올 수도 있습니다.

>>> for module_test import add, sub

>>> add(1,2)

>>> 3

>>> sub(2,1)

>>> 1

만약 수십개 또는 수백개의 함수가 들어있는 특정 모듈에서 한 두가지의 함수만 필요로 할 때 위와 같이 사용하며, 함수를 사용할 때 모듈명을 넣지 않습니다.

>>> from module_test import *

module_test 모듈의 모든 함수를 호출하겠다는 의미입니다.( * = 모든 것! )

module_test.py 에 print문을 추가 하여 실행하고 결과를 확인 합니다. 그리고 Python을 실행 후 프롬프트에서 import module_test 해 보면 의도치 않게 print문까지 실행되어 3, 1을 출력합니다. 함수만 불러오고 싶은데 print까지 실행되면 안되겠죠?

module_test.py에 if __name__ == ‘__main__’: 추가, 저장 그리고 실행 해 봅니다. __name__변수는 파이썬이 내부적으로 사용하는 특별 변수명 입니다.

module_test에서 실행 될 때는 __name__변수에 ‘__main__’이 저장되어 if조건이 참(True)이 되며 print가 실행되지만, import 하게 되면 __name__변수에 ‘module_test.py’가 입력되며 if조건이 False가 되어 print가 실행되지 않습니다.

함수뿐만 아니라 변수 또는 클래스도 import 할 수 있습니다. 우선 PI변수를 지정하고 원넓이를 계산하는 Math()클래스와 solv() 메서드(클래서 내 함수)를 작성하여 저장합니다.

>>> import module_test

>>> print(module_test.PI)

3.14

>>> print(module_test.Math().solv(2))

12.56

>>> a = module_test.Math()

>>> print(a.solv(2))

12.56

모듈안에 있는 클래스를 사용하려면 dot( . ) 연산자로 클래스이름 앞에 모듈이름을 입력하면 됩니다.

(VS Code에서 주석처리 하고 싶은 행을 클릭 & 드래그 후 Ctrl + / 하게 되면 '#'이 붙습니다. 주석해제 할 때도 동일방법을 사용합니다.)

Test.py에서 module_test.py를 import하여 함수를 사용해 봅니다. 문제없이 실행되는 것을 알 수 있습니다.

지금까지 함수(function), 클래스 (class), 모듈(module)까지 알아봤습니다.

댓글