파이썬을 공부하다 보면 모듈을 import 하는 방식이 코드마다 여러 개 임을 볼 수 있다.
그래서 그 차이점을 공부해보았다.
모듈 | 특정 기능을 .py 파일 단위로 작성한 것 |
패키지 |
특정 기능과 관련된 여러 모듈을 묶은 것. 패키지는 모듈에 네임스페이스를 제공 |
라이브러리 | 파이썬에 기본으로 설치된 모듈과 패키지, 내장 함수를 묶어서 파이썬 표준 라이브러리(PSL)이라고 부름 |
import VS from import VS import as
1) import
import의 경우 모듈 이름을 뒤에 붙이며, 여러 개를 가져올 때는 모듈을 콤마로 구별
그리고 모듈.변수 형식으로 모듈의 변수를 사용하며 함수의 경우에도 모듈.함수() 이런 식으로 사용한다.
ex) import ModuleName1, ModuleName2
2)import as
이 형식은 모듈의 이름을 지정할 때 사용된다.
그래서 모듈의 함수를 가져올 때는 이름.함수() 이런 식으로 사용한다.
ex) import ModuleName as 이름
3) from import
이 형식은 모듈의 원하는 변수만을 가져오게 할 때 사용한다.
그래서 위와 달리 모듈.변수와 같은 형태가 아니고 그냥 변수만 써도 사용이 가능하게끔 된다.
또한 한번에 여러개의 변수, 함수가 사용될 때는 콤마로 구별해서 사용이 가능하다.
ex) from ModuleName import 변수
from ModuleName import 함수
from ModuleName import 클래스
from ModuleName import 변수,함수,클래스
#주위해야할 점
하지만 import 뒤에 *(애스터리스크, asterisk) 이 붙는다면 그 모듈의 변수,함수,패키지를 전부 가져오게 하기 때문에(현재 네임스페이스 안으로 모두 가져오게 함 ) 코드 내에서 똑같은 이름의 변수나 함수를 사용하게 된다면 overwrite 때문에 주의해서 사용해야한다.
출처
'공부' 카테고리의 다른 글
탐욕법 (greedy algorithms) (0) | 2020.04.12 |
---|---|
[crawling] selenium을 이용할 때 생기는 session not created 오류 해결 (0) | 2020.04.04 |
[선형대수] Norm이란? (L0, L1, L2 Norm) (0) | 2020.03.23 |
[자료구조] 해시(Hash), 해시테이블(Hash table),해싱(hashing) 이란? (0) | 2020.03.13 |
로드밸런싱이란? (0) | 2020.02.29 |