1. 모듈
2. 모듈 제작 및 불러오기
3. if __name__ == "__main__":
4. 모듈은 안의 모든 것을 불러올 수 있다!
5. 다양한 방식의 모듈 불러오기
1. 모듈
다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일.
별 거 없다. 진짜 그냥 파이썬 파일이다.
2. 모듈 제작 및 불러오기
모듈 제작
def add(a, b):
return a + b
def sub(a, b):
return a-b
파일명이 Cal.py 인 위와 같은 파이썬 파일을 만들었다. 이게 모듈이다. 끝.
저장은 C:/Lee/ 에 할 거다.
모듈 불러오기
>>> import Cal # 모듈 불러오기
>>> print(Cal.add(1, 4))
5
>>> print(Cal.sub(4, 2))
2
명령 프롬프트 창을 열고(파이썬이 아니다. cmd 창이다.) 사용하고자 하는 파이썬 파일(모듈)이 있는 위치로 이동한다.
그 후 파이썬을 실행하고 위와 같이 import 모듈이름 을 치면 모듈을 불러올 수 있다.
이름을 적을 시 뒤에 확장자는 쓰지 않는다.
그 아래는 잘 실행되는지 확인하는 작업.
import는 현재 디렉터리에 있는 파일이나 파이썬 라이브러리가 저장된 디렉터리에 있는 모듈만 불러올 수 있다.
모듈 내 함수 불러오기
from 모듈이름 import 모듈함수
위와 같이 사용하면 모듈을 불러낸 뒤
모듈 이름을 쓰고자 하는 함수에 일일히 안 붙이고 사용이 가능하다.
(Cal.sub(4, 2) => sub(4, 2))
1. 예시
>>> from Cal import add
>>> add(1, 4)
5
2. 함수 여러개 불러내기
from Cal import add, sub
3. 모듈 내 모든 함수 불러내기
from Cal import *
3. if __name__ == "__main__":
def add(a, b):
return a+b
def sub(a, b):
return a-b
print(add(1, 4))
print(sub(5, 3))
위의 print 처럼 결과값이 나오는 구문이 모듈에 있을 때
해당 모듈은 import 시 결과값을 같이 출력한다.
이러한 문제를 방지하기 위해
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))
위처럼 변경을 하게 되면 import시 결과물 출력을 하지 않는다.
__name__ 변수는 파이썬이 내부적으로 사용하는 특별한 변수 이름으로,
C:\Lee>python Cal.py 처럼 직접 실행하게 되면 __name__ 에 __main__ 값이 저장되게 된다.
이와 같은 원리로 import 시 출력값을 내놓지 않게 된다.
4. 모듈은 안의 모든 것을 불러올 수 있다!
모듈은 위에서 본 함수 뿐만이 아니라 변수, 클래스까지 다 불러올 수 있다.
# 파일 이름은 YOYOYO.py
age = 30
class Math:
def Mul(a, b):
return a*b
def add(a, b):
return a+b
위와 같은 모듈이 있을 때,
>>> import YOYOYO
>>> print(YOYOYO.age)
30
>>> a = YOYOYO.Math()
>>> print(a.Mul(2,3))
6
>>> print(YOYOYO.add(YOYOYO.age, 2))
60
위와 같은 식으로 변수 / 클래스 / 함수 전부 불러올 수 있다.
5. 다양한 방식의 모듈 불러오기
여태까지는 프롬프트 창에서 모듈을 불러왔다.
하지만 다른 파이썬 파일 내에서도 import를 사용하면 또 다른 파이썬 파일을 불러올 수 있다.
단, 여기도 마찬가지로 불러오는 파일과 사용하는 파일 모두 같은 디렉토리 내에 있어야 한다.
이제 좀 더 발전된 방식을 보자.
다른 디렉토리에 있는 모듈을 불러오는 방법
(1) sys.path.append(모듈을 저장한 디렉터리) 사용하기
내가 불러오고자하는 파일은 C:/Lee/yo 에 있고
내가 현재 사용하는 파일은 C:/Lee 에 있다고 가정하자.
C:\Lee>python
>>> import sys # sys 모듈을 불러온다.
>>> sys.path # 모듈 내 path 값을 불러온다.
['', 'C:\\Windows\\SYSTEM32\\python37.zip', 'c:\\Python37\\DLLs',
'c:\\Python37\\lib', 'c:\\Python37', 'c:\\Python37\\lib\\site-packages']
sys라는 파이썬을 설치할 때 함께 설치되는 라이브러리 모듈이 있다.
이 모듈은 파이썬 라이브러리가 설치되어 있는 디렉터리를 확인할 수 있다.
만약 파이썬 모듈이 위 디렉터리에 들어 있다면
모듈 저장 위치와 상관 없이 바로 불러서 사용할 수 있다.
어어라?? sys.path의 결괏값이 리스트네?? 그럼 우리는 추가가 가능하다는 말이다.
>>> sys.path.append("C:/Lee/yo")
path에 위의 경로를 추가해주면
현재 디렉토리 상관없이 해당 경로의 모듈을 불러서 사용할 수 있다.
(2) PYTHONPATH 환경 변수 사용하기 (이 방법이 더 쉬움)
C:\Lee>set PYTHONPATH=C:\Lee>\yo # 해당 구문을 사용하면 해결!
C:\Lee>python
>>> import Cal
>>> print(Cal.add(5,4))
9
위의 예시에서 첫줄처럼 set PYTHONPATH 뒤에 불러오고자 하는 모듈이 있는 위치를 넣는다.
그러면 아무 곳에서 저 모듈을 사용할 수 있다.
'파이썬(Python) > 파이썬(Python) 기초' 카테고리의 다른 글
파이썬(Python) 5장 추가적인 기본 사항 - 4. 예외처리 (0) | 2022.07.08 |
---|---|
파이썬(Python) 5장 추가적인 기본 사항 - 3. 패키지 (0) | 2022.07.08 |
파이썬(Python) 5장 추가적인 기본 사항 - 1. 클래스 (2) | 2022.07.06 |
파이썬(Python) 4장 입출력 - 3. 파일 생성 및 읽고 쓰기 (0) | 2022.07.05 |
파이썬(Python) 4장 입출력 - 2. 사용자 입출력 (0) | 2022.07.05 |
댓글