원문 : http://learnpythonthehardway.org/book/ex40.html
개발을 하다보면 다른사람이 만든 module 이나 class를 가져다 쓸 경우가 있다.
import 라는 명령어를 사용해서 외부 라이브러리(다른사람들이 만든 프로그램)를 가져다 쓸 수 있다.
Module
python 의 함수, 변수, class 와 같은 코드를 담고 있는 ".py" 파일 하나를 하나의 모듈 이라고 생각하면 된다.
아래와 같은 모듈이 있다고 했을 때 (mystuff.py)
def apple(): print "I AM Apples!" tangerine = "Living reflection of a dream"
위 코드를 사용하고 싶으면 (python shell)...
import mystuff mystuff.apple() #I AM Apples! mystuff.tangerine #Living reflection of a dream
위와 같이 import 로 module을 불러와서 사용 하면 된다.
Class
class 는 모듈 같은 놈이다. 함수와 변수를 가질 수 있다. 어디서나 변함 없이 사용될 함수나, 공통으로 사용될 변수 같은 경우 module에 작성해서 사용 하면 되겠지만. 독립된 기능이나 별개의 변수를 사용하고 싶은 경우, 어떤 특정한 객체를 표현 하고 싶은 경우에는 class를 사용한다.
위에서 module로 만들었던 mystuff.py를 class로 변경해 보자.
class MyStuff(object): def __init__(self): self.tangerine = "And now a thousand years between" def apple(self): print "I Am Classy Apples!!"
위에서 나온 "__init__(self)", self 와 같은 놈들은 object를 설명하면서 알아보자
Objects
class는 그냥 선언 같은거다. 이런이런 함수와 이런이런 변수들이있는 MyStuff 라는 클래스다! 라고 선언만 한거라고 생각하면된다.
class를 실제로 사용하기 위해서는 실체가 있는 object로 만들어야 한다. object는 class를 가지고 만든 것 으로 하나의 class로 여러개의 object를 만들 수 있다.
쉽게 이야기 해 보면
노트북 이라는 어떤 스펙이나 정의를 class 라고 한다면
삼성 센스, lg xnote, hp envy 뭐 이런 실질적인 제품을 object라고 할 수 있다. (더 어려운가?)
어쨋건 object는 class를 실현한, class를 사용하기 위한 실체 정도로 생각하자
위에서 만든 MyStuff 란 class의 object를 만들고 사용 해 보자
thing = MyStuff() thing.apple() #I Am Classy Apples!! thing.tangerine #'And now a thousand years between'
__init__(self) 함수는 초기화 함수로 object를 처음 만들때 실행된다.
위 코드에서 보면
thing = MyStuff()
할 때 실행 된다.
self 는 object 자체를 말한다. 위 코드 기준으로 보면 self는 thing 이 된다.
class를 만들때 "이 class는 나중에 어떤 object로 생성이 될텐데 그 object를 self 라고 한다." 라고 정한것이다.
추가 Class 예제
class Song(object): def __init__(self, lyrics): self.lyrics = lyrics def sing_me_a_song(self): for line in self.lyrics: print line happy_bday = Song(["Happy birthday to you", "I don't want to get sued", "So I'll stop right there"]) bulls_on_parade = Song(["They rally around the family", "With pockets full of shells"])
'Python > Python 어렵게 배우기' 카테고리의 다른 글
Python 어렵게 배우기 - Exercise 41 이후에 대하여... [포스팅 끝] (1) | 2014.02.20 |
---|---|
Python 어렵게 배우기 - Exercise 41: Learning To Speak Object Oriented (0) | 2014.02.10 |
Python 어렵게 배우기 - Exercise 39: Dictionaries, Oh Lovely Dictionaries (0) | 2014.01.13 |
Python 어렵게 배우기 - Exercise 38: Doing Things To Lists (0) | 2014.01.06 |
Python 어렵게 배우기 - Exercise 37: Symbol Review (0) | 2014.01.03 |