- 파이썬은 대부분의 라이브러리가 이미 다른 사용자에 의해서 구현되어 있다.
- 남이 만든 프로그램 쓰는 법 : 객체(OOP개념) < 모듈
* 모듈 개요 : 어떤 대상의 부분 혹은 조각 (예) 레고 블록, 벽돌, 자동차 부품들
프로그램에서는 작은 프로그램 조각들, 모듈들을 모아서 하나의 큰 프로그램을 개발함
프로그램을 모듈화 시키면 다른 프로그램이 사용하기 쉬움
- 패키지 : 모듈을 모아놓은 단위, 하나의 프로그램
1. Module
* 모듈 만들기 : 파이썬의 모듈은 py파일을 의미
같은 폴더에 module에 해당하는 .py파일과 사용하는 .py을 저장한 후 import문을 사용해서 모듈 호출.
* namespace : 모듈을 호출할 때 범위 정하는 방법.
모듈 안에는 함수와 클래스 등이 존재 가능
필요한 내용만 골라서 호출 할 수 있음
from과 import 키워드 사용
- 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문으로 활용 가능
(예) random(난수), time(시간), urllib.request(웹)
수 많은 파이썬 모듈을 어떻게 검색할 것인가? 구글 검색
2. Package
- 하나의 대형 프로젝트를 만드는 코드의 묶음
- 다양한 모듈들의 합. 폴더로 연결됨
- __init__ , __main__ 등 키워드 파일명이 사용됨
- 다양한 오픈 소스들이 모두 패키지로 관리됨.
- 폴더별로 __init__.py 구성하기 (현재 폴더가 패키지임을 알리는 초기화 스크립트. 없을 경우 패키지로 간주하지 않음.
but 3.3 이상부터는 없어도 괜찮음
import와 __all__ keyword사용)
(참고) package namespace
- Package 내에서 다른 폴더의 모듈을 부를 때 상대 참조로 호출하는 방법
from game.graphic.render import render_test
#절대참조
from .render import render_test
.현재 디렉토리 기준
from ..sound.echo import echo_test
..부모 디렉토리 기준
3. 오픈 소스 라이브러리 사용
두 개의 패키지를 설치할 때 충돌을 방지하기 위해 가상환경 설정.(Virtual Environment)
- 프로젝트 진행시 필요한 패키지만 설치하는 환경
- 기본 인터프리터 + 프로젝트 종류별 패키지 설치 (예) 웹 프로젝트, 데이터 분석 프로젝트, 각각 패키지 관리하는 기능
- 다양한 패키지 관리 도구를 사용함
- 대표적인 도구로 virtualenv와 conda가 있음
- virtualenv + pip : 가장 대표적인 가상환경 관리 도구. 레퍼런스 + 패키지 개수
- conda : 상용 가상환경도구. miniconda 기본 도구. 설치의 용이성 및 windows에서 장점.
- conda 가상환경 예시 : matplotlib를 활용하면 그래프 표시 가능.
'네이버 부스트캠프 AI Tech > Pre-course' 카테고리의 다른 글
5. Python Data Handling (0) | 2021.12.05 |
---|---|
4. File / Exception / Log Handling (0) | 2021.12.05 |
2. Python Object-Oriented Programming (0) | 2021.12.03 |
1. 딥러닝의 역사 (0) | 2021.12.03 |
부스트캠프 AI Tech 3기 준비 (0) | 2021.12.03 |
댓글