본문 바로가기
파이썬(Python)/파이썬(Python) 기초

파이썬(Python) 5장 추가적인 기본 사항 - 2. 모듈

by 인생즐겜러 2022. 7. 7.
728x90
반응형

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 뒤에 불러오고자 하는 모듈이 있는 위치를 넣는다.

그러면 아무 곳에서 저 모듈을 사용할 수 있다.

728x90
반응형

댓글