4-2. Module and Projcet

유승우·2022년 5월 2일
0

모듈과 패키지


  • 모듈

    • 프로그램에서 사용하는 작은 프로그램 조각들
    • 모듈들을 모아서 하나의 큰 프로그램을 개발할 수 있다.
    • 프로그램을 잘 모듈화 시킬수록 다른 사람이 내가 만든 프로그램을 사용하기 쉬워진다.
  • 모듈은 하나의 패키지 안에 들어가 있으며, Built-in Module인 Random을 사용하여 난수를 쉽게 생성할 수 있다.

  • 모듈이 모여 하나의 큰 프로그램(패키지)이 되고 패키지가 공개된 것을 프로젝트라고 한다.

Module 만들기


  • 파이썬의 Module == py 파일을 의미

  • 같은 폴더에 Module에 해당하는 .py파일과 사용하는 .py을 저장한 후 import 문을 사용해서 module을 호출

  • 모듈을 import로 호출하면 메모리에 로딩이 되고, 모든 함수가 호출이 된다.

  • 함수는 모듈이름.함수명을 하면 작동이 된다.

# fah_converter.py
def covert_c_to_f(celcius_value):
	return celcius_value * 9.0/ 5 + 32

import fah_converter

celsius = float(input())
fahrenheit = fah_converter.covert_c_to_f(celsius)
print("That's ", fahrenheit, " degrees Fahrenheit")

Namespace


  • 모듈을 호출할 때 범위 정하는 방법

  • 모듈 안에는 함수와 클래스 등이 존재 가능

  • 필요한 내용만 골라서 호출 할 수 있음

  • from과 import 키워드를 사용함

  • Alias 설정하기 - 모듈명을 별칭으로 써서

    import fah_converter as fah # fah_coverter를 fah라는 이름으로
    print(fah.covert_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 Module


  • 파이썬이 기본 제공하는 라이브러리
  • 문자처리, 웹, 수학 등 다양한 모듈이 제공됨
  • 별다른 조치없이 import 문으로 활용 가능
# 난수
import random
print(random.randint(1,100)) # 1 ~ 100의 정수 난수 생성
print(random.random()) # 일반적인 난수 생성

# 시간
import time
time.localtime() # 현재 시간 출력

# 웹
import urllib.request
response = urllib.request.urlopen("http://thetemlab.io")
print(response.read())
  • 모듈 자체를 아는 것도 중요하지만 모듈의 키워드를 아는 것이 중요!
  • 구글 키워드 검색으로 다른 사람의 코드 참고

Package


  • 하나의 대형 프로젝트를 만드는 코드의 묶음
  • 다양한 모듈들의 합, 폴더로 연결됨
  • "init", "main" 등 키워드 파일명이 사용됨
  • 다양한 오픈 소스들이 모두 패키지로 관리됨
  1. 기능들을 세부적으로 나눠 폴더로 만듦

  2. 각 폴더별로 필요한 모듈을 구현함

  3. 1차 Test-python shell

  4. 폴더별로 "init.py" 구성하기

    • 현재 폴더가 패키지임을 알리는 초기화 스크립트
    • 없을 경우 패키지로 간주하지 않음 (3.3+ 부터는 X)
    • 하위 폴더와 py 파일(모듈)을 모두 포함함
    • import와 "all" 키워드 사용
  5. "main.py" 파일 만들기

  6. 실행하기 - 패키지 이름만으로 호출하기

가상 환경 만들기


  • 프로젝트 진행 시 필요한 패키지만 설치하는 환경
  • 기본 인터프리터 + 프로젝트 종류별 패키지 설치 ex ) 웹 프로젝트 , 데이터 분석 프로젝트 각각 패키지 관리할 수 있는 기능
  • 다양한 패키지 관리 도구를 사용함
    • 대표적으로 virtualenv와 conda가 있음

  • 보통 윈도우에서 conda를 많이 활용하는데, conda는 자동으로 파이썬 코드가 아닌 코드들도 함께 설치해주기 때문에 많이 사용한다.

0개의 댓글