1. 모듈
변수, 함수, 클래스를 하나의 파일(.py)로 모아서 코드 작성
그러면 모듈을 만들어보자!
%%writefile ai_school.py
data = 'python'
def echo(msg):
print('ai school : ', msg)
이렇게 data변수와, echo함수가 있는 ai_school모듈을 만들었다!
이렇게 모듈이 잘 생성되었다는 결과가 출력되고...
이렇게 파일을 보면 ai_school.py가 만들어졌고
%ls
이렇게 코드로도
확인해볼 수 있다.
모듈을 만들었으니 이제 모듈을 사용해보자!
import ai_school
이렇게 모듈을 import해주고
%whos
%whos 매직 커맨드로 현재 메모리에 할당된 변수정보를 확인해보면
모듈 ai_school을 확인할 수 있다.
%cat 커맨드로 ai_school의 내용을 살펴보면...
%cat ai_school.py
위와 같이 아까 작성한 파일의 내용이 나온다.
이제 모듈안의 변수를 사용해보자!
ai_school.data
데이터 변수에 할당된 'python'이 출력된다.
아래 코드로 모듈안의 함수를 사용해보면...
ai_school.echo('fighting')
아래와 같이 as를 사용하면...
import ai_school as ais
print(ais.data)
ais.echo('fighting')
as 뒤에 부분만을 써서 사용할 수 있다.
위처럼 같은 결과가 나온다.
이제 모든 변수를 리셋하고 변수를 확인해보면...
%reset
%whos
이렇게 비어있는 상태가 된다.
이번엔 모듈에서 함수만 골라와서 import해보자!
from ai_school import echo
%whos
이렇게 함수만 import하고 변수를 확인해 보면...
함수만 할당된 것을 볼 수 있다.
함수를 모듈을 안쓰고 아래와 같이 쓸 수 있다.
echo('fighting!')
만약 모듈 내에서 여러개를 가지고 오고 싶으면...
from ai_school import data, echo
이렇게 ','로 구분해져 사용하고...
모두 다 가져오고 싶으면 아래 코드처럼 '*'을 이용해서 사용한다!
from ai_school import *
1. 패키지
여러개의 모듈을 디렉토리로 구분해서로 모아서 코드 작성
일단 디렉토리의 구조를 출력하는 우분투(Os)패키지인 tree를 설치하자!
!apt-get install tree -y
실행하면 아래처럼 설치가 된다.
- mkdir : 디렉토리 만들기
- -p : 상위 디렉토리를 만들면서 디렉토리를 만들기
- touch : 빈파일 생성
이렇게 세 가지 명령어를 이용해서 간단한 stock 패키지를 만들어보자!
!mkdir -p stock/kor
!mkdir -p stock/usa
!touch stock/__init__.py
!touch stock/kor/__init__.py
!touch stock/usa/__init__.py
!tree stock
이렇게 코드를 작성해 주고 !tree명령어를 사용해 패키지의 구조를 확인하면...
위와 같이 2개의 디렉토리에 3개의 파일이 있는 패키지가 만들어진 것을 확인할 수 있다!
__init__.py는
- 패키지에 있는 디렉토리의 모듈을 설정하는 파일이다.
- python 3.x 버전부터는 쓰지 않아도 문제가 없지만 하위버전 호환성을 이유로 써주는 것이 좋다.
이번엔 파일을 하나씩 추가해보자!
%%writefile stock/kor/kospi.py
def crawl_kospi():
print('crawl_kospi')
첫번째로 crawl_kospi라는 함수를 kor디렉토리 안에 넣고...
%%writefile stock/kor/kosdaq.py
def crawl_kosdaq():
print('crawl_kosdaq')
두번째로 crawl_kosdaq이라는 함수를 kor디렉토리 안에 넣고
%%writefile stock/usa/snp500.py
def crawl_snp500():
print('crawl_snp500')
세번째로 snp500이라는 함수를 usa디렉토리 안에 넣고
%%writefile stock/usa/nasdaq.py
def crawl_nasdaq():
print('crawl_nasdaq')
네번째로 crawl_nasdaq이라는 함수를 usa 디렉토리 안에 넣고
!tree명령어로 stock패키지의 구조를 확인해 보면..
!tree stock
이렇게 파일이 디렉토리 안에 잘 넣어진 것을 확인할 수 있다!
패키지의 모듈을 사용하려면...
아래처럼 import 패키지.하위패키지.모듈 as OOO으로 사용한다.
import stock.kor.kospi as skk
skk.crawl_kospi()
stock의 kor디렉토리(하위패키지)의 kosdaq모듈을 skk로 import하고 함수를 사용하면...
위처럼 함수가 실행된다.
이번 시간에는 모듈과 패키지를 알아봤습니다...
잘 이해가 가셨나요...?
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/009.gif)
'멋쟁이사자처럼 AI스쿨' 카테고리의 다른 글
멋쟁이사자처럼 4주차 회고 (0) | 2023.01.12 |
---|---|
예외처리(파이썬 강의 Day5) (0) | 2023.01.08 |
입력과 출력(파이썬 강의 Day5) (0) | 2023.01.06 |
클래스 설계(파이썬 강의 Day5) (0) | 2023.01.06 |
메서드의 종류, 메서드 맹글링(파이썬 강의 Day5) (0) | 2023.01.06 |
댓글