26강 (문법) 모듈
서로 연관된 변수,함수, 아직안배웠지만 객체라고 하는 이 부품들을
그룹핑하는 아주 거대한 수납상자인 모듈을 알아보자.
math.py
#code 수많은 코드
def average(a,b,c):
s=a+b+c
r=s/3
return r
def plus(a,b):
return a+b
pi = 3.14
#code 수많은 코드
여기 있는 수많은 코드 중에 서로 연관된 코드들을 다시 그룹핑하고 싶은 마음이 생긴다.
즉, 함수라는 것만으로는 만족할 수 없게 된다는 말이다.
이럴 때 사용하는 도구가 모듈이다.
module.py
import math #math모듈을 임포트한것
#다른 모듈을 더 쓰고 싶으면 import matrh, os이런식으로 뒤에 컴마를 붙여준다.
print(math.average(1,2,3)) #2
print(math.plus(1,2)) #3
print(math.pi) #3.14
from math import average, plus, pi
print(average(1,2,3))
print(plus(1,2))
print(pi)
from math import average #math를 임포트한게 아니라 math라는 모듈로부터 average라는 함수를 임포트 한 것
/////////////////////////////////////////////////////////////////////
수업에서는 다루지 않지만 디렉토리로 구분해서 모듈을 물리적으로 정리정돈 하고 싶다면
그것보다 더 큰 것 가장 큰 수납상자인 패키지라는 것이 있다.
27강 (활용) 리팩토링/모듈로 함수 정리 정돈/
view.py
import os
def getList():
files = os.listdir('data')
listStr = ''
for item in files:
listStr = listStr + '<li><a href="index.py?id={name}">{name}</a></li>'.format(name=item)
return listStr
create.py/ index.py/ update.py
import cgi, os, view #임포트에 view추가
.
.
.
.
'''.format(title=pageId, desc=description, listStr=view.getList(), form_default_title=pageId, form_default_description=description)) #view.getlist()로 변경
이렇게 함으로써 우리가 얻을 수 있는 장점
1. 보기가 훨씬 좋아졌다.
2. getlist가 view라는 모듈의 소속이라는 걸 알 수 있다.
3. 중복이 제거된다.
4. view.py에 있는 getlist라는 함수를 수정하는걸 통해서
저 모듈 그리고 저 모듈의 겟 리스트라는 함수를 사용하고 있는 모든 곳에서 동시에 업데이트를
수정을 가할수 있다.
프로그래밍에서 우리가 배워왔던 여러가지 테크닉들이 기능이나 느낌은 많이 다르지만
본질적으로는 중복을 제거하는 것과 관련되어 있다.
그리고 중복을 제거했을 때 발생할 수 있는 여러가지 폭발적인 효과들은 다 비슷비슷하게 공유하고 있다.
그래서 다른 듯 보이지만 사실은 같은 것들이 세상에 참 많은 것 같다.
'Python > Today I learned' 카테고리의 다른 글
TIL#11 생활코딩 Python 수업을 마치며 (0) | 2021.05.12 |
---|---|
TIL#10 생활코딩 Python 보안,pypi,API (0) | 2021.05.12 |
TIL#08 생활코딩 Python 함수 (0) | 2021.05.12 |
TIL#07 생활코딩 Python 18~22강 글목록 구현,form,수정,삭제 (0) | 2021.05.12 |
TIL#06 생활코딩 Python 리스트(list),컨테이너들,반복문 (0) | 2021.05.12 |