모듈과 패키지
Module overview
- 어떤 대상의 부분 혹은 조각
예) 레고 블록, 벽돌, 자동차 부품들
- 프로그램에서는 작은 프로그램 조각들, 모듈들을 모아서 하나의 큰 프로그램을 개발함
- 프로그램을 모듈화 시키면 다른 프로그램이 사용하기 쉬움
예) 카카오톡 게임을 위한 카카오톡 접속 모듈
모듈 (Module) in Python
- Built-in Module인 Random을 사용, 난수를 쉽게 생성할 수 있음
import random
random.randint(1, 1000)
331
random.randint(1, 1000)
543
random.randint(1, 1000)
664
random.randint(1, 1000)
727
패키지
- 모듈을 모아놓은 단위, 하나의 프로그램
- 직접 구현을 해봐야 알 수 있음
모듈
Module 만들기
- 파이썬의 Module == py 파일을 의미
- 같은 폴더에 Module에 해당하는. py파일과 사용하는. py을 저장한 후
- import문을 사용해서 module을 호출
fah_converter.py
def covert_c_to_f(celcius_value):
return celcius_value * 9.0 / 5 + 32
module_ex.py
import fah_converter
print("Enter a celsius value: "),
celsius = float(input())
fahrenheit = fah converter.covert c to f(celsius)
print ("That's", fahrenheit, " degrees Fahrenheit")
namespace
- 모듈을 호출할 때 범위 정하는 방법
- 모듈 안에는 함수와 클래스 등이 존재 가능
- 필요한 내용만 골라서 호출 할 수 있음
- from과 import 키워드를 사용함
namespace example
Alias 설명하기 = 모듈명을 별칭으로 써서
import fah_converter as fah # fah_converter를 fah라는 이름으로
print(fah.convert_c_to_f(41.6)) # 그 안에 covert_c_to_f 함수를 쓴다
모듈에서 특정 함수 또는 클래스만 호출하기
from fah_converter import covert_c_to_f
print(covert_c_to_f(41.6)) #covert_c_to_f 함수만 호출함
모듈에서 모든 함수 또는 클래스를 호출하기
from fah_converter import *
print(covert_c_to_f(41.6)) #전체 호출
Built-in Modules
- 파이썬이 기본 제공하는 라이브러리
- 문자처리, 웹, 수학 등 다양한 모듈이 제공됨
- 별다른 조치없이 import문으로 활용 가능
#난수
import random
print(random.randint (0,100)) # 0~100사이의 정수 난수를 생성
print(random.random()) # 일반적인 난수생성
80
0.659741947343163
#시간
import time
print(time.localtime()) # 현재 시간 출력
time.struct_time(tm_year=2022, tm_mon=12, tm_mday=26, tm_hour=2, tm_min=17, tm_sec=19, tm_wday=0, tm_yday=360, tm_isdst=0)
# 웹
import urllib.request
response = urllib.request.urlopen("http://highllight.tstory.com")
print(response.read())
b'<html>\r\n<head>\r\n<meta name="robots" content="noarchive" />\r\n<meta name="googlebot" content="nosnippet" />\r\n</head>\r\n<body>\r\n<div align=center>\r\n<h3>Error. Page cannot be displayed. Please contact your service provider for more details. (32)</h3>\r\n</div>\r\n</body>\r\n</html>'
패키지
package overview
- 하나의 대형 프로젝트를 만드는 코드의 묶음
- 다양한 모듈들의 합, 폴더로 연결됨
- init, main 등 키워드 파일명이 사용됨
- 다양한 오픈 소스들이 모두 패키지로 관리됨
Package 만들기
1) 기능들을 세부적으로 나눠 폴더로 만듦
2) 각 폴더별로 필요한 모듈을 구현함
# echo.py
def echo_play(echo_number):
print("echo {} number start".format(echo_number)
3) 1차 Test-python shell
import echo
echo.echo_play(10)
echo 10 number start
4) 폴더별로 init.py 구성하기
- 현재 폴더가 패키지임을 알리는 초기화 스크립트
- 없을 경우 패키지로 간주하지 않음 (3.3 + 부터는 X)
- 하위 폴더와 py 파일(모듈)을 모두 포함함
- import와 all keyword 사용
__all__ = ['image', 'stage', 'sound']
from. import image
from. import stage
from. import sound
5) main.py 파일 만들기
from stage.main import game_start
from stage.sub import set_stage_level
from image.character import show_character
from sound.bgm import bgm_play
if __name__ == '__main__':
game_Start()
set_stage_level(5)
bgm_play(10)
show_character()
[참고] package namespace
package 내에서 다른 폴더의 모듈을 부를 때 상대 참조로 호출하는 방법
from game.graphic.render import render_test # 절대참조
from .render import render_test # 현재 디렉토리 기준
from ..sound.echo import echo_test # 부모 디렉토리 기준
가상환경 설정하기
Virtual Environment
Python Virtual Environment Overview
- 프로젝트 진행 시 필요한 패키지만 설치하는 환경
- 기본 인터프리터 + 프로젝트 종류별 패키지 설치
- ex) 웹 프로젝트, 데이터 분석 프로젝트, 각각 패키지 관리할 수 있는 기능
- 다양한 패키지 관리 도구를 사용함
- 대표적인 도구 virtualenv와 conda가 있음 virtualenv + pip 가장 대표적인 가상환경 관리 도구(레퍼런스 + 패키지 개수) conda 상용 가상환경도구 miniconda 기본 도구 설치의 용이성, Windows에서 장점
conda 가상환경 예시
matplotlib 활용한 그래프 표시
- 대표적인 파이썬 그래프 관리 패키지
- 엑셀과 같은 그래프들을 화면에 표시함
- 다양한 데이터 분석 도구들과 함께 사용됨
'BOOTCAMP > boostcamp AI Tech Pre-Course' 카테고리의 다른 글
선형독립과 선형종속 (0) | 2023.01.01 |
---|---|
선형방정식과 선형시스템 (0) | 2022.12.29 |
Mathematics for Artificial Intelligence (0) | 2022.12.28 |
Numerical Python - numpy (0) | 2022.12.28 |
File / Exception / Log Handling (0) | 2022.12.27 |