ITStudy/Python

import와 from의 차이[Python]

Todays Goal 2021. 1. 29. 00:32
반응형

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 하는 방법의 차이를 구분해 보았습니다.

 

 

 

반응형