계산기 모듈화를 해보자요
github : https://github.com/jihyeonjane/algorithm_codingtest/tree/master/python_module_practice/01calculate
일단 폴더 구조는 다음과 같음
01calculate
│
├── calc - 각종 계산식 파일 넣어둘 calc 폴더 생성
│ ├── __init__.py - 테스트 할때 calc 내의 함수 일일이 불러 올 일 없도록 init에서 설정해줄거임
│ ├── advanced.py - 곱셈, 나눗셈 함수
│ ├── basic.py - 덧셈, 뺄셈 함수
│
├── test.py - 모듈 테스트
1) __init__.py 설정 이전 test.py 실행
# test.py (without __init__.py)
import calc.basic, calc.advanced
print(calc.basic.add(3,7))
print(calc.advanced.div(3,7))
# terminal 실행
python test.py
## 결과 출력됨
2) __init__.py 설정 이후 test.py 실행
# __init__.py
import calc.basic, calc.advanced
# test.py
import calc
print(calc.basic.add(3,7))
print(calc.advanced.div(3,7))
** calc 만 import 해도 __init__.py 에서 이미 임포트 했기 때문에 basic, advanced 안 불러와줘도 실행됨
3) __init__.py 의 __all__ 설정
__all__ 설정을 통해 원하는 패키지만 가져오도록 할 수 있음.
# __init__.py
## basic만 가져오기
import calc.basic, calc.advanced
__all__ = [
"basic"
]
--------------------------------
# test.py
from calc import *
# 이렇게 불러와도 __init__.py에서 basic만 설정해놨기 때문에 advanced 안 불러와질 것...
print(basic.add(3,7))
# print(advanced.mul(3,7)) # advanced 안 불러와짐
4) test.py에서 바로 함수 호출 가능하도록 설정
# __init__.py
from calc.basic import *
from calc.advanced import *
# test.py
import calc
print(calc.add(3,7))
print(calc.mul(3,7))
** __init__.py 설정에 따라 원하는대로 함수 호출 가능하다는 것
'Python' 카테고리의 다른 글
| [OOP01] 객체지향 프로그래밍 개념 (0) | 2024.05.18 |
|---|---|
| [모듈화04] py 가상환경과 외부 라이브러리 실행 (0) | 2024.05.18 |
| [기타] 파이썬 표준 라이브러리 (0) | 2024.05.18 |
| [모듈화02] 함수 모듈, 패키지 실습01 (0) | 2024.05.17 |
| [모듈화01] Pytorch Templete (0) | 2024.05.17 |