Boostcamp AI Tech

[Boostcamp Day-4] Python - Module and Project

ju_young 2021. 8. 5. 21:47
728x90

파이썬은 대부분의 라이브러리가 이미 다른 사용자에 의해서 구현되어 있다. 이렇게 다른 사용자가 만든 프로그램을 쓰는 법이 모듈을 import하는 방법이라 한다.

Module

모듈은 어떤 대상의 부분 혹은 조각이라고 할 수 있다. 이런 모듈들을 모아서 하나의 큰 프로그램을 개발한다. 또한 이렇게 프로그램을 모듈화시키면 다른 프로그램이 사용하기 쉽다.

예를 들어서 built-in module인 random을 사용하면 다음과 같이 난수를 쉽게 생성할 수 있다.

import random
random.randint(1, 1000)

파이썬에서의 modeul은 바로 py파일을 의미하고 import 문을 사용하여 이 py파일을 호출할 수 있다. 예를 들어서 a.py에 다음과 같은 코드가 작성되어 있다고 하자.

def a(val):
    return val * 9.0 / 5 + 32

그러면 import 문을 사용하여 a.py를 불러올 수 있고 a.py에 있는 a라는 함수를 다음과 같이 사용할 수 있다.

import a
print(a.a(2))

namespace

모듈을 호출할 때 범위를 정할 수 있다. 즉, 필요한 내용(함수)만 골라서 호출 할 수 있다. 이것은 from과 import 키워드를 사용해서 사용할 수 있다.

import a as b #a를 b라는 이름으로 사용하겠다
print(b.a(2)

from a import a #a에서 a라는 함수만 불러온다
print(a(2))

from a import * #a에서 모든 함수 또는 클래스를 불러온다
print(a(2))

built-in modules

파이썬이 기본 제공하는 라이브러리이고 문자처리, 웹, 수학 등 다양한 모듈이 제공된다. max(), min()과 같은 함수들은 built-in function이라고 한다.


패키지

패키지는 모듈을 모아놓은 단위 또는 하나의 프로그램이라고 한다.

init.py

init파일은 현재 폴더가 패키지임을 알리는 초기화 스크립트이다. 만약 없을 경우 패키지로 간주하지 않는데 3.3버전 이상부터는 그렇지 않다고 한다. init 안에는 import와 all keyword를 사용하여 코드를 작성한다.

__all__= ['image', 'stage', 'sound']
from . import image
from . import stage
from . import sound

main.py

main 파일은 말그대로 메인으로 실행할 파일을 의미한다. 다음과 같이 if name == 'main':이라고 작성하면 해당 파일이 main파일이면 실행한다는 뜻이 된다.

if __name__ == '__main__':
    game_start()
    set_stage_level(5)
    bgm_play(10)
    show_character()

가상환경

프로젝트 진행시 가상환경에 필요한 패키지만 설치하여 사용할 수 있다. 대표적으로 virtualenv와 conda가 있는데 각각 다음과 같은 특징이 있다.

  • virtualenv + pip : 가장 대표적인 가상환경 관리 도구
  • conda : 상용 가상환경도구이고 설치의 용이성과 윈도우에서 장점을 가지고 있다.

윈도우에서는 conda를, 리눅스와 맥에서는 conda 또는 pip를 사용한다고 한다.

conda 가상환경

conda 가상환경은 다음과 같이 만들 수 있다.

# conda create : 가상환경 새로만들기
# -n my project : 가상환경이름
# python=3.8 : 파이썬 버전 지정
conda create -n my project python=3.8

가상환경 호출과 해제는 각각 다음과 같이 할 수 있다.

conda activate my_project #가상환경 호출
conda deactivate #가상환경 해제
728x90