파이썬따라하기/5클래스모듈패키지

#클래스모듈패키지3편 - 파이썬 패키지 기초 python

모두의 실험실 2023. 5. 7. 19:01
728x90

패키지의 사전적인 뜻은 '꾸러미' '묶음'을 의미함

파이썬에서도 유하하게 모듈을 모아 놓은 것을 의미함

 

변수 >> 함수 >> 클래스 >> 모듈 >> 패키지

패키지가 가장 큰 구조임

 

파이썬을 하는 이유는 손으로 하는 것을

자동으로 하기위함임

 

그리고 한번 한것을 두번 안하기 위함임

도구를 사용하여 진화하는 인간의 삶과 동일

 

같은 실수는 두번 안하고 싶으며

한번 만들어서 수정 개선 보완은 할수 있지만

똑같은거 또 다시 만들어야 하는 이유는 없음

 

그래서 한번 잘 만들고

그 잘 만들어 진걸 발전시켜 

또 만들어서 결국 내가 발전함

 

수학에서 더하기 빼기를 배워서 

알아야 인수분해도 하고 함수도 풀며

고교 마지막에 가서는 미적분까지 할 수 있게됨

 

그와 마찬가지로 함수를 만들고 클래스를 만들고

그것이 모여 모듈을 만듦

그리고 그 모듈들을 하나의 패키지로 완성함

 

하나의 완성된 패키지까지 만드는데 1달이 걸렸다면

다른 패키지를 만드는데는 그것보다 작게 걸림

 

기존에 내가 만들어 놓은 수 많은 함수들을

쉽게 활용할 수 있기 때문

이는 초등생이 10문제 풀때 대학생이 1000문제 

풀수 있는 것과 같음

 

잘하면 잘할 수록 시간에 자유로운 사람이 될 수 있음

이 시대에 가장 힘이 센사람은 시간을 자유롭게 쓰는 사람임

 

chatgpt 넘 잘 만들어져 있음 

잘 가져다 쓸려면 알아야함

 

다시 패키지로 돌아와서 실체를 알아야함

패키지의 실체는 폴더임

모듈의 실체는 .py파일이었음

 

-결과(이미지)

house폴더에

room kitchen bathroom 하위폴더가 있고

module_livingroom.py 파일(모듈)이 있음

그리고 각폴더별 __init__.py 파일과

.py 파일이 있음(module_tv, module_refrigerator, module_toothbruch)

##module_livingroom.py
def livingroom():
    print('-livingroom-')
    
##module_tv.py
def tv():
    print('-tv-')
    
##module_refrigerator.py
def refrigerator():
    print('-refrigerator-')
    
##module_toothbrush.py
def toothbrush():
    print('-toothbrush-')

해당 모듈에는 함수명을 출력하는 함수로 구성됨

 

코드 실행은 jupyter notebook 환경에서 진행함

import sys
sys.path.append('D:\\tmp\\')

from house import module_livingroom
from house.room import module_tv
from house.kitchen import module_refrigerator
from house.bathroom import module_toothbrush

module_livingroom.livingroom()
module_tv.tv()
module_refrigerator.refrigerator()
module_toothbrush.toothbrush()

-결과 (드래그로 확인가능)

-livingroom-
-tv-
-refrigerator-
-toothbrush-

 

동일한 결과이나 다르게 표현가능함

import sys
sys.path.append('D:\\tmp\\')

from house.module_livingroom import livingroom
from house.room.module_tv import tv
from house.kitchen.module_refrigerator import refrigerator
from house.bathroom.module_toothbrush import toothbrush

livingroom()
tv()
refrigerator()
toothbrush()

-결과 (드래그로 확인가능)

-livingroom-
-tv-
-refrigerator-
-toothbrush-

 

폴더를 보면 각파일에 __init__.py파일이 있음

초기화 파일이며, class에 __init__ 메소드와 유사함

각 폴더의 init에 함수까지 선언하면 패키지 사용할때 경로선언이 용이해짐

##path = D:\tmp\house\__init__.py
from .module_livingroom import livingroom

##path = D:\tmp\house\room\__init__.py
from .module_tv import tv

##path = D:\tmp\house\kitchen\__init__.py
from .module_refrigerator import refrigerator

##path = D:\tmp\house\bathroom\__init__.py
from .module_toothbrush import toothbrush
import sys
sys.path.append('D:\\tmp\\')

import house
from house import room, kitchen, bathroom

house.livingroom()
room.tv()
kitchen.refrigerator()
bathroom.toothbrush()

-결과 (드래그로 확인가능)

-livingroom-
-tv-
-refrigerator-
-toothbrush-

 

__init__.py는 경로 설정 뿐아니라 변수등 초기화에 사용됨

##path = D:\tmp\house\__init__.py
from .module_livingroom import livingroom
param = 'modoopython'
import sys
sys.path.append('D:\\tmp\\')

import house

print(house.param)

-결과 (드래그로 확인가능)

modoopython

 

 

태그
-------------------------------------------------------------
#python, #파이썬, #anaconda, #아나콘다, #기초, #클래스, #class, #import, #selenium, #셀레늄, #자동, #교육, #코딩교육, #coding, #chatgpt, #챗GPT, #로봇,

 

 

 

 

 

 

 

728x90
반응형