Python

[Python] 파이썬 모듈(module) 생성과 사용법

Let it out 2024. 2. 8. 13:46

모듈(module)이란?

모듈은 변수, 함수 또는 클래스를 모아 놓은 파일을 말한다.
 
파이썬에서 코딩을 할때 모듈을 불러와 사용 할 수 있다.
 
쉽게 말하면 또 다른 파이썬 파일을 불러와 현재 파이썬 파일에서 사용가능 하게 해주는게 모듈이다.
 
모듈의 확장자는 .py 다.
 
 

모듈 만들기

파이썬 대화형 인터프리터든 파이참을 사용 하든 모듈 만드는 방법은 같다.
 
모듈 만드는 방법을 알아보자. 나는 파이참을 사용했다.
 
 
1. 프로젝트 우클릭 -> new 좌클릭 -> python file 좌클릭
 
 
 
 
 
 
 

 

 
2. python file 클릭 ->  module 이라고 이름을 입력 -> 엔터.
 
 
 
3.module.py 파일이 생성 되었다.

 
 
 
 
4. sum 함수 하나랑, math 클래스 내용을 적고 Ctrl + S 눌러서 파일 저장.

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

class math:
    def sub(self,a,b):
        return a - b
 
 
 
5. 파이썬 프로젝트 경로에 가면 moudle.py 파일이 생성 된 것을 확인 할 수 있다.
 
 
 
6. module.py 파일 열어보면 당신이 적었던 내용이 적혀있다.
 
이 파일을 이제 모듈로 사용 할 거다.
 
 
 
 

모듈 불러오기

모듈도 만들었으니 모듈을 불러오는 방법에 대해 알아보자.
 
module.py 처럼 test.py 파일을 하나 더 만들어 보자.
 
test.py 에서 module.py 모듈을 불러 올 거다.

 
 
 
 
모듈을 불러올때는 import 명령어를 사용해서 불러온다.
 
 
첫 번째가 module.py,  두 번째가 test.py
#module.py

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

class math:
    def sub(self,a,b):
        return a - b
 

아래 예제를 보면 함수 뿐만 아니라 클래스도 불러 올 수 있다.

#test.py

import module #import를 사용해서 module.py 불러오기

a = module.sum(1,2) #함수 사용

b = module.math() #클래스 사용
c = b.sub(3,5)

print(a)
print(c)
결과 : 
3
-2
 
 

from 명령어 사용해서 모듈 이름 생략하기

모듈을 불러오고 함수나 클래스를 사용하려면 모듈이름.함수처럼 항상 모듈 이름을 적어 줘야한다.
 
하지만 모듈 이름을 from 명령어를 사용해 생략 가능하다.
 
 
1. from module import sum, math 처럼 import 뒤에 콤마로 구분해서 함수, 클래스 이름을 적어 주는 것이다.
#test.py

from module import sum, math  #import를 사용해서 module.py 불러오기

a = sum(1,2) #함수 사용

b = math() #클래스 사용
c = b.sub(3,5)

print(a)
print(c)
 

 

2. import 뒤에 * 을 붙이면 모든 모듈의 함수, 클래스를 사용하겠다는 뜻이다.
#test.py

from module import*  #import를 사용해서 module.py 불러오기

a = sum(1,2) #함수 사용

b = math() #클래스 사용
c = b.sub(3,5)

print(a)
print(c)
 

 

 

if__name__ == "__main__":  

if__name__ == " __main__":   조건문은 본이이 직접 파이썬 파일 실행하면 문장을 수행하고, 다른 파일에서 모듈로 사용되면 문장을 수행하지 않는 다는 뜻이다.
 
 
1. 우선 모듈로 사용할 module.py 에 print(sum(1,2)를 추가 해줬다.
#module.py
def sum(a,b):
    return a + b

print(sum(1,2))
 
 
 
2. 이제 test.py 에서 모듈을 호출하고 실행시켜보자.
 
어라? 그저 sum 함수만 호출하고 출력도 안 했는데 결과 값 3이 나온다.
 
모듈에서 print 함수가 실행 됐기 때문이다.
 
이때 모듈의 출력을 막고 싶으면 if_name_ == "__main__": 을 사용하면 된다.
#test.py

from module import*  #import를 사용해서 module.py 불러오기

sum(4,5)
결과 : 3
 
 
 
3. if __name__ == "__main__": 은 자신이 직접 파일을 실행 시키면 이 되어 아래 문장을 실행하고, 모듈로 사용되면 거짓이 되어 아래 문장을 실행하지 않는다.
 
 moule.py 를 직접 실행 시켜보면 3이 나온다.
#module.py
def sum(a,b):
    return a + b

if __name__ == "__main__":
    print(sum(1,2))
결과 : 3
 
 
4. 이제 다시 test.py 로 가서 module.py를 모듈로 사용한 후 실행 시켜보면 아무런 결과 값이 나오지 않는다.
 
module.py 가 모듈로 사용 되었기 때문에 if __name__ == "__main__": 조건문이 거짓이 되어 실행 되지 않기 때문이다.
#test.py

from module import*  #import를 사용해서 module.py 불러오기

sum(4,5)
결과 : 

 

반응형