[코딩도장] 파이썬 모듈 만들기 요약본
in Development on Python
모듈과 패키지 만드는것이 매일 헷갈려서 내 방식대로 정리해 두려고 한다.
이번 요약은 모듈만 하려고 한다.
Unit 45. 모듈과 패키지 만들기
파이썬 스크립트를 작성할때면 비슷한 클래스와 함수를 작성하게 된다. 그러므로 공통되는 부분은 빼내서 모듈과 패키지로 만들면 된다.
- 모듈(module) : 변수, 함수, 클래스 등을 모아 놓은 스크립트 파일(간단한 기능만 담을때 사용)
- 패키지(package)는 여러 모듈을 묶은 것(코드가 많고 복잡할때 사용. 패키지는 기능들이 모듈로 여러개 나뉘어 있고 관련된 모듈끼리 폴더에 모여 있는 형태)
45.1 모듈 만들기
모듈(함수만 있는) 만들고 사용하기
- 변수나 함수가 담은 모듈명.py파일을 만든다.
- 사용 방법1 (모듈과 같은 디렉토리)
import 모듈
모듈.변수
모듈.함수()
- 사용 방법2 (모듈과 같은 디렉토리)
from 모듈 import 변수, 함수
변수
함수()
모듈(클래스가 있는) 만들고 사용하기
- 클래스를 담은 모듈명.py파일을 만든다.
- 사용 방법1 (모듈과 같은 디렉토리)
import 모듈
인스턴스 = 모듈.클래스()
인스턴스.함수()
- 사용 방법2 (모듈과 같은 디렉토리)
from 모듈 import 클래스
인스턴스 = 클래스()
인스턴스.함수()
45.2 모듈과 시작점 알아보기
(요약) class 마지막에 if __name__ == __main__
을 한 이유는 다른데에서 import 할때 안돌게 하기 위해서이다.(왜냐면 __main__
은 현재 스크립트 파일에서만 실행되기 때문에)
예를 들어 이 아래 스크립트를 run하면
calc.py
def add(a, b):
return a + b
def mul(a, b):
return a * b
if __name__ == '__main__': # 프로그램의 시작점일 때만 아래 코드 실행
print(add(10, 20))
print(mul(10, 20))
실행 결과
C:\project>python calc.py
30
200
그러나
import calc
를 하면 아무것도 출력하지 않는다. 왜냐하면 __name__
변수의 값이 __main__
일 때만 출력하게 하였기 떄문.
쓰려면
>>> calc.add(50, 60)
110
>>> calc.mul(50, 60)
3000
처럼 써야한다.