IT is Smart
파이썬 Class 구현하기, define and use class 본문
이번에는 파이썬으로 Class를 정의하고 Class 개체를 생성해서 사용하는 방법을 알아보겠습니다.
class Enemy: life = 3 def attack(self): print("ouch!") self.life -=1 def checkLife(self): if self.life <= 0: print("I am dead") else: print(str(self.life) + " life left") enemy1 = Enemy() enemy2 = Enemy() enemy1.attack() enemy1.attack() enemy1.checkLife() enemy2.checkLife()
Enemy
라는 이름의 class를 정의했습니다.
life
라는 내부변수를 선언했고, 초기값으로 3을 할당했습니다.
attack
이라는 함수를 정의했습니다. 함수 단독으로 선언할 경우에는 매개변수 없이도 선언할 수 있었지만, class의 메소드로써 함수를 정의할 경우에는 반드시 최소 1개의 인수(파라메터, 매개변수)를 선언해줘야 하고 첫번째 인수는 class 자기 자신을 의미하는 'self'
로 선언해야 합니다. attack함수가 호출되면 "ooch!"라고 출력하고 life변수의 값을 -1해주도록 구현되었습니다.
a -= 1
은 a = a - 1
과 같은 의미입니다. 마찬가지로 a += 1
은 a = a + 1
과 같은 의미입니다.
또 checkLife함수를 정의했습니다. 이 함수는 내부변수인 life의 값이 0보다 작으면 "I and dead"를 출력하고 0보다 크면 현재 값을 출력하도록 구현되었습니다.
Enemy는 이렇게 life변수, attack()메소드와 checkLife() 메소드를 가진 Class로 정의가 된 것입니다.
enemy1과 enemy2는 동일하게 Enemy Class의 Instance입니다. Class가 설계도라면 Instance를 그 설계도 대로 만들어진 개별의 실제 건물인 것입니다. 사람라는 것이 모든 사람들의 공통점을 정의한 실체가 없는 개념(설계도)이라면 홍길동이나 이몽룡은 그 실체인 것과 같습니다.
그래서, enemy1과 enemy2는 처음 생성되었을 때의 life는 똑같이 3이지만, attack메소드를 실행하면 각각의 life값이 달라지는 것입니다.
이것으로 Class와 Instance의 관계에 대한 간략한 설명을 마치겠습니다.
여기까지 입니다~
'Programming > Python Basic' 카테고리의 다른 글
파이썬 Class 초기화하기, Initialize a class (0) | 2016.09.10 |
---|---|
파이썬 try-except문으로 에러 처리하기, Python handles error using try-except (0) | 2016.09.10 |
파이썬 requests모듈로 웹크롤링하기, web crawling using requests (3) | 2016.09.10 |
파이썬 requests모듈 사용하기, use requests module (0) | 2016.09.09 |
파이썬으로 인터넷의 주가정보 수집하기, get stock information from Internet (3) | 2016.09.09 |