PYTHON

python 클래스 - 메쏘드, 클래스 변수

미스털이 사용자 2021. 9. 3. 15:22
반응형

이전에 클래스의 기본에 대해 알아봤습니다.

이번에는 메쏘드, 클래스 변수에 대해 알아보겠습니다.

 

동물이라 원표시된 곳부터 사람, 반려동물, 견, 묘까지 이들의 공통점은 바로 클래스라는 틀이라는 것이죠.

이 틀마다 빨간글씨의 행위, 파란글씨의 속성을 갖고있습니다.

사람을 보게되면

행위(메소드) : 말하기, 달리기

속성(클래스변수) : 인종, 취미, 특기, 나이, 성별, 이름

이렇게 돼있습니다. 이 행위나 속성은 나, 아들, 아내별로 제각각 나타내야 됩니다.

 

예를 들어볼게요.

 

#상속
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등)을 출력합니다.

결과는 다음과 같아요.

 

반응형