이전에 클래스의 기본에 대해 알아봤습니다.
이번에는 메쏘드, 클래스 변수에 대해 알아보겠습니다.
동물이라 원표시된 곳부터 사람, 반려동물, 견, 묘까지 이들의 공통점은 바로 클래스라는 틀이라는 것이죠.
이 틀마다 빨간글씨의 행위, 파란글씨의 속성을 갖고있습니다.
사람을 보게되면
행위(메소드) : 말하기, 달리기
속성(클래스변수) : 인종, 취미, 특기, 나이, 성별, 이름
이렇게 돼있습니다. 이 행위나 속성은 나, 아들, 아내별로 제각각 나타내야 됩니다.
예를 들어볼게요.
#상속
class Human :
power = 100
weight = 100
height = 100
def eat(self) :
self.weight += 20
def train(self) :
self.weight -= 5
self.power += 20
def sleep(self) :
self.weight -= 5
self.height += 10
def stat(self) :
print('power :', self.power)
print('weight :', self.weight)
print('height :', self.height)
print('')
class Student(Human) :
def study(self) :
print('공부한다')
self.power+=20
man1 = Student()
man2 = Student()
#man1의 생활과 결과
man1.eat()
man1.eat()
man1.sleep()
man1.study()
man1.stat()
#man2의 생활과 결과
man2.train()
man2.train()
man2.train()
man2.stat()
(7, 10, 14, 18행) Human이란 거대한 클래스에 행위를 특정지어 나타냈습니다. 이때 행위는 메소드라 부릅니다.
=> 각각의 파라메터에 self라는 변수가 있는데 이건 이 클래스 자체를 나타냅니다.
=> 클래스 자체의 메소드를 호출하거나 클래스 변수를 호출해서 설정, 출력등을 하게됩니다.
=> 보시는 것 처럼 클래스변수를 호출할 때엔 self.를 붙입니다.
=> 이 메소드들은 호출될 때 마다 클래스변수를 호출해서 기존의 값을 더하거나 빼줘서 바꿔줍니다.
(24행) Student라는 클래스를 만듬 이때 괄호안의 파라메터 값을 주목.
=> Human 파라메터는 위에 언급된 Human클래스를 뜻합니다. 즉, Human을 상속받은 하위개념으로 이해하면 됩니다.
=> Human의 고유 속성, 행위를 다 받고 study라는 행위(메소드)를 따로 구현함.
(29, 30행) man1, man2 모두 Student클래스를 통해 객체를 만들었습니다.
=> man1, man2 모두 eat, sleep, train등 메소드를 실행 후 stat이란 메소드를 호출시켜 바뀐 변수들(power, weight등)을 출력합니다.
결과는 다음과 같아요.
'PYTHON' 카테고리의 다른 글
[파이썬] 윈도우에서 pip 다운받고 pip실행해보기 (0) | 2021.09.08 |
---|---|
python - 클래스 - 생성자, 비교, 더하기 (0) | 2021.09.03 |
python - 클래스(class)에 대해 알아보자(1) - 정의 및 기본 구조 (0) | 2021.09.03 |
python - 기본문법 - lambda (0) | 2021.08.31 |
파이썬 - 기본 타입 - int, float, str, list, dict (0) | 2021.08.31 |