44.2 import로 패키지 가져오기

패키지는 특정 기능과 관련된 여러 모듈을 묶은 것인데, 패키지에 들어있는 모듈도 import를 사용하여 가져옵니다.

  • import 패키지.모듈
  • import 패키지.모듈1, 패키지.모듈2
  • 패키지.모듈.변수
  • 패키지.모듈.함수()
  • 패키지.모듈.클래스()

여기서는 파이썬 표준 라이브러리에서 urllib 패키지의 request 모듈을 가져와보겠습니다(urllib은 URL 처리에 관련된 모듈을 모아 놓은 패키지입니다).

>>> import urllib.request
>>> response = urllib.request.urlopen('http://www.google.co.kr')
>>> response.status
200

패키지에 들어있는 모듈은 import urllib.request와 같이 패키지.모듈 형식으로 가져옵니다. 마찬가지로 모듈의 함수를 사용할 때도 urllib.request.urlopen()과 같이 패키지.모듈.함수() 형식으로 패키지 이름과 모듈 이름을 모두 입력해줍니다.

이 예제는 패키지 사용을 학습하기 위한 것이므로, urllib.request.urlopen 함수의 사용 방법은 이해하지 않고 그냥 넘어가도 됩니다.

참고 | urlopen 함수

urllib.request.urlopen은 URL을 여는 함수인데 URL 열기에 성공하면 response.status의 값이 200이 나옵니다. 이 200은 HTTP 상태 코드이며 웹 서버가 요청을 제대로 처리했다는 뜻입니다.

44.2.1  import as로 패키지 모듈 이름 지정하기

패키지 안에 들어있는 모듈도 import as를 사용하여 이름을 지정할 수 있습니다.

  • import 패키지.모듈 as 이름

다음은 urllib 패키지의 request 모듈을 가져오면서 이름을 r로 지정합니다.

>>> import urllib.request as r    # urllib 패키지의 request 모듈을 가져오면서 이름을 r로 지정
>>> response = r.urlopen('http://www.google.co.kr')    # r로 urlopen 함수 사용
>>> response.status
200

패키지 이름에 모듈 이름까지 더하면 상당히 길어지는데 import as를 사용하니 코드가 좀 더 간단해졌죠?

44.2.2  from import로 패키지의 모듈에서 일부만 가져오기

패키지도 from import를 사용하여 모듈에서 변수, 함수, 클래스를 가져올 수 있습니다.

  • from 패키지.모듈 import 변수
  • from 패키지.모듈 import 함수
  • from 패키지.모듈 import 클래스
  • from 패키지.모듈 import 변수, 함수, 클래스

다시 urllib 패키지의 request 모듈에서 urlopen 함수와 Request 클래스를 가져와 보겠습니다.

>>> from urllib.request import Request, urlopen    # urlopen 함수, Request 클래스를 가져옴
>>> req = Request('http://www.google.co.kr')       # Request 클래스를 사용하여 req 생성
>>> response = urlopen(req)                        # urlopen 함수 사용
>>> response.status
200

참고로 urlopen 함수에 URL을 바로 넣어도 되고, Request('http://www.google.co.kr')와 같이 Request 클래스에 URL을 넣은 뒤에 req를 생성해서 urlopen 함수에 넣어도 됩니다.

패키지의 모듈에서 모든 변수, 함수, 클래스를 가져오는 방법은 다음과 같습니다.

  • from 패키지.모듈 import *

다음은 urllibrequest 모듈에서 모든 변수, 함수, 클래스를 가져옵니다.

>>> from urllib.request import *     # urllib의 request 모듈에서 모든 변수, 함수, 클래스를 가져옴
>>> req = Request('http://www.google.co.kr')    # Request를 사용하여 req 생성
>>> response = urlopen(req)                     # urlopen 함수 사용
>>> response.status
200

44.2.3  from import로 패키지의 모듈의 일부를 가져온 뒤 이름 지정하기

이번에는 from import로 패키지의 모듈에서 변수, 함수, 클래스를 가져온 뒤 이름을 지정해보겠습니다.

  • from 패키지.모듈 import 변수 as 이름
  • from 패키지.모듈 import 변수 as 이름, 함수 as 이름, 클래스 as 이름

다음은 urllib 패키지의 request 모듈에서 Request 클래스를 가져온 뒤 이름을 r로 지정하고, urlopen 함수를 가져온 뒤 이름을 u로 지정합니다.

>>> from urllib.request import Request as r, urlopen as u
>>> req = r('http://www.google.co.kr')    # r로 Request 클래스 사용
>>> response = u(req)                     # u로 urlopen 함수 사용
>>> response.status
200