1. 클래스

클래스는 데이터와 기능을 가지고 있는 인스턴트 객체를 생성하기 위한 역할을 합니다. 파이썬은 대표적인 객체지향 프로그래밍 언어이며 클래스는 일종의 설계도면입니다.

파이썬은 이 설계도면을 보며 하나의 인스턴스 객체를 만들어 냅니다. 그리고 인스턴스 객체를 선언하여 사용할 수 있게 됩니다.

입력

class Car(object): #앞 부분을 대문자로 사용합니다.
	MaxSpeed = 300
	MaxPeople = 5
	def move(self, x):
		print(x, '의 스피드로 움직이고 있습니다.')
	def stop(self):
		print('멈췄습니다.')

k5 = Car()
k3 = Car()
k5.move(10)
k5.stop()
k3.move(5)
k3.stop()

print(k5.MaxSpeed)
print(k3.MaxSpeed)

출력

10 의 스피드로 움직이고 있습니다.
멈췄습니다.
5 의 스피드로 움직이고 있습니다.
멈췄습니다.
300
300

1.1 클래스 변수

클래스 변수는 클래스 바로 하위에 자리하고 있는 변수들 입니다.이 클래스 변수는 아래의 예시와 같이 클래스 이름을 통해서 접근할 수 있습니다.

(주의: 변수 이름으로 접근하지 않습니다!)

입력

class Car(object):
	# 클래스 변수 위치 (파이썬 규약에 따라 indent로 결정)
	kinds = []
	MaxSpeed = 300
	MaxPeople = 5
	def move(self, x):
		print(x, '의 스피드로 움직이고 있습니다.')
	def stop(self):
		print('멈췄습니다.')

k5 = Car()
Car.kinds.append('k5')
k3 = Car()
Car.kinds.append('k3')

print(k5.kinds)

출력

['k5', 'k3']

이 클래스 변수는 해당 클래스를 통해 만들어진 모든 인스턴스 객체들이 공유하는 변수 값입니다. 각 인스턴스 객체들 각자가 관리하고 있는 변수는 인스턴스 변수라고 합니다.

이 클래스 변수를 다룰 때는 조금 주의해야 할 것이 있습니다.