TIL/코테개념_python

[python] 모듈 뿌시기

곰퓨타 2021. 1. 7. 12:55

'모듈'이라는 단어는 굉장히 많이 들어봤는데 이 개념에 대해서는 명확한 아이디어가 없는 것 같았다.

따라서 모듈에 대해 정리해보고자 한다.

 

물론 이 글 또한 점프투 파이썬을 볼 것이다!!

[내사랑 점프투 파이썬❣️]

wikidocs.net/29

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

모듈이란?

함수나 변수 또는 클래스를 모아 놓은 파일이다. 이는 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이다!

 

모듈 만들기

/Users/[사용자이름]/doit에 다음과 같은 모듈(mod1.py 파일)을 저장해보자. 

# mod1.py
def add(a, b):
    return a + b

def sub(a, b): 
    return a-b

 

모듈 불러오기

/Users/[사용자이름]/doit 에서 python3 를 실행시켜보자.

import는 현재 디렉토리에 있는 파일이나 파이썬 라이브러리가 저장된 디렉토리에 있는 모듈만 불러올 수 있다.
import 모듈이름
으로 불러온 경우, 해당 파일에 있는 함수를 사용하기 위해 모듈이름.함수이름 형태로 활용할 수 있다.
>>> import mod1
>>> print(mod1.add(3, 4))
7
>>> print(mod1.sub(4, 2))
2

 

모듈이름 없이 함수이름만 사용하고 싶은 경우 다음과 같이 사용할 수 있다.

from 모듈이름 import 모듈함수

(ver1 ) _ mod1에서 add만 불러와서 쓰고 싶은 경우

>>> from mod1 import add
>>> add(3, 4)
7

 

(ver2) _ mod1에서 add와 sub모두 불러오고 싶은 경우

#1. 
from mod1 import add, sub
#2.
from mod1 import *

 

 

 

if __name__ == "__main__" 의 의미

if __name__ == "__main__"을 사용하면 /Users/[사용자이름]/doit > python3 mod1.py로 직접 실행할 때, __name__ == "__main__"

이 문장이 참이 되어 if문에 있는 문장들이 실행된다. 하지만, 그냥 python3을 열거나 다른 파일에서 이 모듈을 부를 경우는 이 조건문이 거짓이 되어 실행되지 않는다.

 

사용법

# 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))

 

 

클래스나 변수 등을 포함한 모듈

모듈은 함수뿐만 아니라 클래스나 변수를 포함할 수 있다.

/Users/[사용자이름]/doit 에 다음과 같은 파일을 저장하자.

# mod2.py 
PI = 3.141592

class Math: 
    def solv(self, r): 
        return PI * (r ** 2) 

def add(a, b): 
    return a+b 

 

/Users/[사용자이름]/doit에서 python3 대화형 인터프리터를 열고 이를 실행해보면, mod2 파이썬 파일에 있는 PI 변수 값 뿐만 아니라, Math class를 사용하는 방법을 보여준다.

>>> import mod2
>>> print(mod2.PI)
3.141592
>>> a = mod2.Math()
>>> print(a.solv(2))
12.566368
>>> # mod2.py에 있는 add함수 활용하는 방법
>>> print(mod2.add(mod2.PI, 4.4))
7.541592

 

다른 파일에서 모듈 불러오기

지금까지 모듈을 대화형 인퍼프리터에서 가져왔는데, 다른 파이썬 파일에서 이전에 만들어 놓은 모듈을 가져온 방법에 대해 알아보자.

mod2.py와 modtest.py가 같은 디렉토리에 있는 경우, 다음과 같이 다른 파일에서 이전에 만들어 놓은 모듈을 가져올 수 있다.

# modtest.py
import mod2
result = mod2.add(3, 4)
print(result)

 

 

다른 디렉토리에 있더라도 해당 모듈을 불러올 수 있는 기능이 두 가지 있다!!

1. sys.path.append(모듈을 저장한 디렉토리) 사용하기

 1) 대화형 인터프리터에서 'import sys'한다.

 2) 'sys.path'를 통해 파이썬 라이브러리가 설치되어 있는 디렉토리를 확인한다.

-> 파이썬 모듈이 sys.path에 있다면 모듈이 저장된 인터프리터에 이동할 필요없이 바로 불러서 사용할 수 있다.

 3) sys.path.append("추가할 파일 경로")

-> 경로를 추가하면 해당 경로에 있는 파일을 사용할 수 있다.

 

 

2. PYTHONPATH 환경 변수 사용하기

이는 사용을 많이할 것 같지는 않아서 직접 실행해보지는 않고 점프투 파이썬 코드를 가져와보았다.

C:\doit>set PYTHONPATH=C:\doit\mymod
C:\doit>python
>>> import mod2
>>> print(mod2.add(3,4))
7

 

 

 

모듈까지 뿌셨으므로 다음은 점프투파이썬 파이썬 날개달기의 파이썬 패키지를 뿌셔보자 ⭐️