모듈
- 모듈: 함수나 변수 또는 클래스를 모아 놓은 파일을 말하며, 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고도 할 수 있다.
모듈은 이미 만들어 놓은 모듈을 사용할 수도 있고 우리가 직접 만들어서 사용할 수도 있다.
(파이썬 확장자 .py 로 만든 파이썬 파일은 모두 모듈이다)
모듈 만들기
아래와 같이 add 와 sub 함수만 있는 파일 mod1.py 를 만들고 디렉터리에 저장하면 이 mod1.py 파일이 바로 모듈이다.
# mod1.py
def add(a, b):
return a + b
def sub(a, b):
return a - b
위에서 만든 파일, 즉 모듈을 파이썬에서 불러와 사용하려면
먼저 명령 프롬프트(cmd) 창을 열고 mod1.py를 저장한 디렉터리로 이동한 다음 대화형 인터프리터를 실행한다.
앞서 만든 mod1 모듈을 불러와 제대로 작동하는지 확인해 볼 수 있다
import mod1 # mod1 모듈 불러오기
print(mod1.add(3,4)) # 더하기 함수
print(mod1.sub(10,4)) # 빼기 함수
모듈 불러오기 (import 사용 방법)
1) 모듈 불러오기
import 모듈 이름
# 모듈 이름은 mod1.py에서 확장자(.py)를 제거한 mod1 만을 가리킨다
2) 함수 이름으로 불러오기
# 모듈 이름 없이 함수 이름만 쓸 경우
# from 모듈 이름 import 모듈 함수
from mod1 import add
add(3, 4)
3) 둘 이상의 함수를 사용하고 싶을때
# from 모듈 이름 import 모듈 함수1, 모듈 함수2
from mod1 import add, sub
4) 모든 함수 불러오기
from 모듈 이름 import *
if __name__ == "__main__" 의미
앞서 만든 모듈 mod1.py을 아래와 같이 변경한다.
# mod1.py
def add(a, b):
return a + b
def sub(a, b):
return a - b
print(add(1, 4))
print(sub(4, 2))
그리고 명령프롬프트 창에서 해당 모듈을 불러오면
mod1.py가 실행되어 결괏값을 출력한다. 이러한 문제를 방지하려면 mod1.py 파일을 아래와 같이 수정한다.
# mod1.py
def add(a, b):
return a + b
def sub(a, b):
return a - b
if __name__ == "__main__":
print(add(1, 4))
print(sub(4, 2))
▶ if __name__ == "__main__" 을 사용하면 직접 이 파일을 실행했을 때는 __name__=="__main__" 이 참이 되어 if문 다음 문장이 수행된다. 반대로 대화형 인터프리터나 다른 파일에서 이 모듈을 빌러서 사용할 때는 __name__=="__main__" 이 거짓이 되어 if문 다음 문장이 수행되지 않는다.
즉, 해당 프로그램을 직접 실행하는 경우(name == main 인 경우) 에는 결괏값이 출력되지만, 해당 프로그램을 직접 실행하지 않고, 이 모듈을 다른 파일에서 빌려서 사용할 때는 결괏값이 출력되지 않는다.
클래스나 변수 등을 포함한 모듈
모듈은 함수 외에도 클래스나 변수 등을 포함할 수도 있다.
아래는 원의 넓이를 계산하는 Math 클래스와 두 값을 더하는 add 함수 그리고 원주율 값에 해당되는 PI 변수처럼 클래스, 함수, 변수 등을 모두 포함하고 있다.
# mod2.py
PI = 3.141592
class Math:
def solv(self, r):
return PI * (r ** 2)
def add(a, b):
return a + b
이를 mod2.py 로 하고 저장한 뒤 대화형 인터프리터를 열고 다음과 같이 따라해 본다.
위의 예시처럼 mod2.PI를 입력하여 mod2.py 파일에 있는 PI 변수 값을 사용할 수 있다.
또한 모듈 안에 있는 클래스를 사용하려면 mod2. 과 같이 '.' (도트 연산자)로 클래스 이름 앞에 모듈 이름을 먼저 입력해야 한다.
mod2.py에 있는 add 함수 역시 사용할 수 있다.
import mod2
print(mod2.add(mod2.PI, 4.4))
다른 파일에서 모듈 불러오기
이번에는 다른 파이썬 파일에서 이전에 만들어 놓은 모듈을 불러와서 사용하는 방법에 대해 알아본다.
먼저 mod2.py 파일과 동일한 디렉터리에 modtest.py 파일을 만든다.
# modtest.py
import mod2
result = mod2.add(3, 4)
print(result)
위에서 처럼 다른 파이썬 파일에서도 import mod2로 mod2 모듈을 불러와서 사용할 수 있다.
이를 위해서는 modtest.py과 mod2.py 파일이 동일한 디렉터리에 있어야 한다.
그 외에 모듈을 불러오는 방법들
먼저, 이전에 만든 mod2.py 파일을 새 디렉터리로 이동시킨다.
C:\Users\기본 경로>cd C:\doit #이동할 경로
C:\doit>mkdir mymod # 새 디렉터리 생성
C:\doit)>move mod2.py mymod #지정한 디렉터리로 파일 이동
1) sys.path.append(모듈을 저장한 디렉터리) 사용하기
C:\doit>python
>>> import sys
sys 모듈은 파이썬을 설치할 때 함께 설치되는 라이브러리 모듈이다. 이 sys 모듈을 사용하면 파이썬 라이브러리가 설치되어 있는 디렉터리를 확인할 수 있다.
sys.path 는 파이썬 라이브러리가 설치되어 있는 디렉터리를 보여 준다. 만약 파이썬 모듈이 위 디렉터리에 들어 있다면 모듈이 저장된 디렉터리로 이동할 필요 없이 바로 불러서 사용할 수 있다.따라서 sys.path에 C:\doit\mymod 디렉터리를 추가하면 아무 곳에서나 불러 사용할 수 있다.
# 명령프롬프트 창에서
sys.path.append("C:/doit/mymod")
2) PYTHONPATH 환경 변수 추가하기
# 명령프롬프트 창에서
C:\doit>setPYTHONPATH=C:\doit\mymod
C:\doit>python
>>> import mod2
>>> print(mod2.add(3, 4))
set 명령어를 사용해 PYTHONPATH 환경 변수에 mod2.py 파일이 있는 디렉터리를 설정한다. 그러면 디렉터리 이동이나 별도의 모듈 추가 작업 없이 mod2 모듈을 불러와서 사용할 수 있다.
[출처]
점프 투 파이썬, 이지스 퍼블리싱, 박응용
'[파이썬 Projects] > <파이썬 기초>' 카테고리의 다른 글
[파이썬] 파이썬 기초: 라이브러리-1 (2) | 2024.10.16 |
---|---|
[파이썬] 파이썬 기초: 패키지 (1) | 2024.10.16 |
[파이썬] 파이썬 기초: 클래스 - 2 (0) | 2024.10.15 |
[파이썬] 파이썬기초: 클래스 - 1 (1) | 2024.10.15 |
[파이썬] os(Operating System) 모듈이란? (0) | 2024.09.19 |