하이루~

어제 쥐 책을 읽어봤더니 내용이 훌륭하더군요.

오랫동안 파이썬에 관련된 활동을 하신 분들이 1년 반이나 걸려 쓰셨으니까요. 그동안 책만 쓴 건 아니겠지만요.

 

하지만… 역시나… 어려웠습니다…

우리가 소화하기는 벅찹니다. 책에는 3일만에 볼 수 있다고 적혀있더군요.

갑자기 많이 배우면 소화불량 걸립니다

 

어떤 프로그래머께서 이렇게 말씀하셨습니다.

“단기간에 뛰어난 프로그래머가 되려고 하면 절대 성공할 수 없느니라.”

 

오늘은 모듈을 어떻게 불러오는지 알아보도록 하죠.

어제 해보셔서 대충은 알고 계시겠지만 import를 사용하면 모듈을 불러올 수 있습니다.

import는 ‘수입하다’라는 뜻을 갖고 있구요, 컴퓨터에서는 다른 프로그램으로부터 데이터를 갖고 오는 것을 뜻하지요.

 

import에도 두 가지 방법이 있습니다.

 

import 모듈

from 모듈 import 변수나 함수

 

첫번째 방법은 모듈 전체를 가져오구요, 두번째 방법은 모듈 내에서 필요한 것만 콕 찍어서 가져오는 방법이죠.

두 방법을 비교해볼까요? 어제 소개해드린 Tkinter(티 케이 인터) 모듈을 두 가지 방법으로 사용해보겠습니다.

 

>>> import Tkinter

>>> Tkinter.widget = Tkinter.Label(None, text='I love Python!')

>>> Tkinter.widget.pack()

 

첫 번째 방법으로 모듈을 불러오면 모듈 내의 변수를 사용하기 위해서는 ‘모듈.변수’의 형식으로 써주어야 합니다. 매번 써주려면 좀 번거롭겠죠?

 

>>> from Tkinter import *

>>> widget = Label(None, text='I love Python!')

>>> widget.pack()

 

두 번째 방법은 모듈내의 이름을 콕 찍어서 가져오는 방법인데, 여기서는 import *라고 써서 전부 다 가져왔습니다.

이렇게 하면 좀 더 편리하군요.

 

하지만 마냥 좋기만 한 방법은 아니랍니다.

아래의 예에서는 멋 모르고 Label이라는 변수를 정의했다가 Tkinter의 Label이 덮어써버리면 피 보는 수가 있다고… 이 사회에 경종을 울리고 있습니다.

 

>>> Label = 'This is a Label'

>>> from Tkinter import *

>>> Label

<class Tkinter.Label at 008B312C>

 

이렇게 장단점이 있으니까 각자 입맛대로 쓰라는군요. 헐~

웬만하면 첫번째 방법을 쓰는 것이 좋겠죠?

 

지금까지 모듈을 불러오는 방법을 알아봤는데요, 불러온 모듈이 필요 없을 땐 어떻게 할까요? 필요 없는 모듈은 요렇게 지워주면 됩니다.

 

del 모듈

 

꼭 그렇게 해줄 필요가 있을까 싶지만, 프로그램을 짜다보면 이런 저런 일이 생기니까 알아두자구요.

다음 예제에서 모듈을 지우는 장면을 보실 수 있습니다.

 

>>> import calendar

>>> calendar.day_name                         # calendar 모듈의 변수 day_name

['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

>>> day_name = calendar.day_name              # 내 변수 day_name으로 복사

>>> del calendar                               # 모듈을 지워줌

>>> day_name

['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

 

calendar 모듈을 불러와서 리스트를 복사해두고 다시 모듈을 지워버렸군요.

이것이 이해가 되신 분을 위해 위의 예제가 아래의 예제와 같은 일을 한다는 것도 보너스로 알려드립니다.

 

>>> from calendar import day_name

>>> day_name

['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

 

del에 대해서 알려드리려다가 본의 아니게 불러오기 방법 두가지를 또 비교해버렸군요.

 

지우는 건 이 정도로 넘어가구요, 한 번 import한 모듈을 다시 불러올 수도 있답니다.

그 때는 아래와 같이 reload 함수를 사용하지요.

 

reload(모듈)

 

웹 사이트를 파이썬으로 만들었다면, 일부 모듈을 수정할 경우에 이 방법을 사용하면 전체 프로그램을 중단하지 않아도 되니까 아주 유용하겠죠?

웹 서비스는 중단 없이 계속되어야 한다. 쭈욱~.

 

 

将把此主题..