'김연아'는 실제로 존재하죠? 네, 여러분이 생각하시는 그 김연아 맞아요. ㅎㅎ '에반 라이사첵'도 실제로 존재하죠? 두 사람 다 실제로 존재하는 사람입니다.
두 사람의 공통점은 무엇일까요? 여러 가지를 들 수 있겠지만 둘 다 '스케이터'라는 공통점을 갖고 있지요.
'스케이터'라는 단 하나의 사람이나 물건이 실제로 존재할까요? 그렇지는 않습니다. 하지만 우리는 '스케이트 타는 사람’을 '스케이터'라고 말합니다. 이런 것을 객체지향에서는 클래스(class)라고 부릅니다. 우리 말로 옮기기는 쉽지 않지만 '부류'라는 의미로 생각하시면 좋을 것 같아요.
다른 예를 들어볼까요?
'사과'는 클래스이구요, '내가 엊저녁에 먹은 사과 다섯 개 중에 두 번째 것'이라고 콕 찍어서 말해주면 인스턴스로 봐줄만합니다.
'좋은 집'은 실체일까요? 어느 한 집만을 콕 찍어서 '좋은 집'이라고 하기는 힘들 것 같군요. 그럼 '우리 집'은 인스턴스일까요? 그건 인스턴스라고 해도 될 것 같네요. 단, 집을 여러 채 가진 사람이 '우리 집'이라고 말할 때는 정확히 어느 집을 가리키는 것인지 알 수 없겠죠. 프로그램 작성을 위해 클래스를 설계하다보면 이런 애매한 문제를 만날 때도 있지요.
이제 파이썬으로 클래스와 인스턴스를 표현해보도록 하겠습니다.
>>> class Singer: # 가수를 정의하겠느니라… ... def sing(self): # 노래하기 메서드 ... return "Lalala~" ... >>> taeji = Singer() # 태지를 만들어랏! >>> taeji.sing() # 노래 한 곡 부탁해요~ 'Lalala~'
클래스를 만들 때는 위와 같이 class 클래스이름: 형식으로 시작해서 그 다음부터 그 클래스의 성질이나 행동을 정의해주면 됩니다. 둘째 줄에는 함수가 정의되어 있죠? 이와 같이 클래스 내부에 정의된 함수를 메서드(method)라고 부릅니다.
여기서 sing 메서드는 Singer라는 클래스가 하는 행동을 정의하고 있죠. Singer 클래스를 만든 다음에는 taeji라는 객체를 만들었습니다. 인스턴스명 = 클래스명()과 같이 만들면 되죠.
그 다음엔 그렇게 만들어진 taeji에게 노래를 시켜봤습니다. Singer 클래스에 sing 메서드를 정의해줬기 때문에 Singer 클래스에 속한 taeji 객체도 sing 메서드를 사용할 수 있지요. 다시 말해서 가수는 노래할 수 있으니까 태지라는 가수도 역시 노래를 할 수 있는 것입니다. 이와 같이 어떤 객체의 메서드를 사용할 때는 이름.메서드 형식으로 해주시면 됩니다.
이번엔 같은 방법으로 리키 마틴 객체를 만들어서 노래를 청해보세요.
>>> ricky = Singer() >>> ricky.sing() 'Lalala~'
오늘은 여기까지 하도록 하죠. 다른 클래스들도 한번씩 만들어보시기 바랍니다.
출처 : wikidocs 왕초보를 위한 파이썬
'Python > 왕초보를 위한 파이썬' 카테고리의 다른 글
7.3. 대물림 (0) | 2012.04.06 |
---|---|
7.2. 변수와 메서드(Method) (0) | 2012.04.06 |
07. 객체지향 (0) | 2012.04.06 |
6.3. 파일을 입맛대로 (0) | 2012.04.04 |
6.2. 한 줄 씩 다루기 (0) | 2012.04.04 |
댓글