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라는 함수를 수정하는걸 통해서 
저 모듈 그리고 저 모듈의 겟 리스트라는 함수를 사용하고 있는 모든 곳에서 동시에 업데이트를
수정을 가할수 있다.

 

 


프로그래밍에서 우리가 배워왔던 여러가지 테크닉들이 기능이나 느낌은 많이 다르지만 
본질적으로는 중복을 제거하는 것과 관련되어 있다.

그리고 중복을 제거했을 때 발생할 수 있는 여러가지 폭발적인 효과들은 다 비슷비슷하게 공유하고 있다.
그래서 다른 듯 보이지만 사실은 같은 것들이 세상에 참 많은 것 같다.

 

 

 

 

 

+ Recent posts