Language/Python

Python - 모듈

괘창 2024. 5. 8. 22:18

● 모듈

파이썬 확장자 .py로 만든 파이썬 파일은 모두 모듈이다.

 

- 모듈 만들기

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

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

 

위와 같이 add와 sub 함수만 있는 파일 mod1.py를 만들고 C:/pythonworks 에 저장

해당 mod1.py 파일이 모듈이다.


- 모듈 불러오기

import 모듈이름
import mod

** mod.py를 생성했다는 의미

** import 시 .py를 생략하고 mod만 써준다.

import mod1
print(mod1.add(3, 4)) # 7
print(mod1.sub(4, 2)) # 2

** mod1.py 파일에 있는 add, sub 함수를 사용하기 위해서는 mod1.add(파일명.함수명)처럼

모듈 이름 뒤 도트(,) 붙이고 함수명을 사용하면 된다.

import는 현재 디렉터리에 있는 파일이나 라이브러리가 저장된 디렉터리에 있는 모듈만 불러올 수 있다.
파이썬 라이브러리는 파이썬을 설치할 때 자동으로 설치되는 파이썬 모듈을 말한다.

 


- 모듈이름 없이 함수명만 사용하고 싶을 때는?

from 모듈이름 import 모듈함수
from mod1 import add, sub
fomr mod1 import *

 


- if __name__ == "__main__":의 의미

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

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

print(add(1, 4))
print(sub(4, 2))

 

add(1, 4), sub(4 ,2) 결과를 출력하는 문장 추가 후 mod1.py 실행 시 아래와 같이 확인된다.

mod1.py 파일의 add, sub 함수만 사용하기 위해선 어떻게 해야할까?

 

# 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__": 을 사용하면 c:/pythonworks mod1.py처럼 직접 파일을 실행헀을 때

if __name__== "__main__": 은 참이 되어 if문 다음 문장이 수행된다.

이와 반대로 대화형 인터프리터나 다른 파일에서 해당 모듈을 불러 사용할 때는

if __name__== "__main__":  거짓이 되어 if문이 수행되지 않는다.

 

 

__name__ 변수란?

파이썬의 __name__ 변수는 파이썬 내부적으로 사용하는 특별한 변수명이다.

c:/pythonworks mod1.py 처럼 mod1.py 파일을 실행할 경우
mod1.py의 __name__ 변수는 __main__ 값이 저장된다.

하지만 파이썬 셸이나 다른 파이썬 모듈에서 mod1을 import 할 경우에는
mod1.py의 __name__ 변수에 mod1.py의 모듈 이름인 mod1이 저장된다.

 


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

 

# mod2.py
PI = 3.141592

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

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

 

** mod2.PI 를 입력해소 mod2.py 파일에 있는 PI 변수의 값을 사용할 수 있다.

 

** mod2.py에 있는 Math클래스를 사용할 수 있다.

 

** mod2.py에 있는 add 함수 또한 사용이 가능하다.

 


 

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

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

 

** 다른 파이썬 파일에서도 import mod2 로 mod2 모듈을 불러와 사용할 수 있다.

** 단, modtest.py 파일과 mod2.py 파일이 동일한 디렉터리(c:/pythonworks)에 있어야 한다.