반응형
Python 라이브러리 사용 시 import와 from의 차이를 알아보고자 합니다.
Python 공부를 시작하면서 라이브러리를 사용하기위해서 import하거나 from을 통해 import하는 것을 보고 정리를 해보고자 합니다.
urllib을 통해서 알아보겠습니다. urllib는 request / error / parse / robotparser 모듈로 구성됩니다.
일반적으로 우리가 urllib를 통해서 URL를 오픈하고 읽기 위해서 는 request 모듈을 사용합니다.
그렇다면 우리는 해당 모듈을 사용하기 위해서 import를 해야할 것입니다.
아래의 두 코드의 결과는 동일한 결과값을 출력할 수 있습니다.
# import 사용 import urllib.request #전체 라이브러리를 사용할 때: import urllib a=urllib.request.urlopen('http://www.daum.net') print(a.read()) #from 사용 #전체 라이브러리를 사용할 때: from urllib import * from urllib import request b=request.urlopen('http://www.daum.net') print(a.read()) |
단 import는 모든 모듈을 그대로 가지고 옮으로써 프로그램에서 "모듈명.메소드"의 형태로 작성하여야 하며, from은 모듈에서 필요한 메소드만 가지고 옮으로써 "메소드"의 형태로 사용하면 된다는 차이점을 가집니다.
실제 사용함에 있어서 극명한 차이점을 가지고 있다는 걸 느끼기는 어려우나 단, from을 사용하여 사용할 시 "메소드"만 기입하여 작성함으로써 저희가 작성한 변수 혹은 함수의 명칭과 해당 "메소드"의 명칭이 충돌되어 프로그램의 논리적인 오류를 가지고 올 수 있음을 염두해두어야 합니다.
가령 아래와 같이 작성한 예제를 살펴볼 수있습니다.
# from 사용 시 AttributeError from urllib import request as r # (1) request를 r로 정의합니다. r=1+1 # (2) r을 int형 변수로 정의합니다. u=r.urlopen('http://www.daum.net') # (3) r을 urllib.request가 아닌 (2)의 인트형변수로 인식함으로써 에러출력 |
이상 오늘은 Python을 프로그래밍을 할 때 라이브러리를 import 하는 방법의 차이를 구분해 보았습니다.
반응형
'ITStudy > Python' 카테고리의 다른 글
[Python] BeautifulSoup로 웹 데이터 분석 with DART (0) | 2021.02.01 |
---|---|
[Python] urllib로 웹 데이터 핸들링 with DART (0) | 2021.01.31 |
주피터 노트북(Jupyter Notebook) root 디렉토리 설정[Python] (0) | 2021.01.27 |
pip upgrade ERROR 상황 시 복구방법(not present/easy_install 활용)[Python] (0) | 2021.01.27 |
아나콘다(Anaconda)/주피터 노트북(Jupyter notebook) 설치하기[Python] (22) | 2021.01.27 |