Python

클래스란?

안녕하세요 정쌤입니다. 저번시간에는 함수에 대해서 공부를 해보았습니다. 오늘은 파이썬의 꽃! 클래스에 대해 알아보겠습니다. 오늘도 학습목표 먼저 읽고 시작하겠습니다!

 

<학습목표>

클래스를 직접 만들고 실행할수있다.

클래스로 다양한 연산을 할수있다.

 

 

Class(클래스)란?

 

클래스의 사전적 정의는 객체를 정의해놓은 것 또는 객체의 설계도, 틀 이라고 정의할 수 있습니다. 클래스는 객체를 생성하는데 사용되며, 객체는 클래스에 정의된 대로 생성됩니다.

 

이렇게 얘기하니까 많이 어려우시죠? 쉽게 얘기하면 클래스는 특징을 갖고, 그 특징들에 맞게 재생산할 수 있는 '틀'이라고 생각하시면 될 것 같습니다. 흔히들 붕어빵 틀과 과자 틀을 예로 많이 듭니다.

 

 

그리고 특정 클래스로 만들어진 것을 객체 또는 인스턴스라고 부릅니다. 위 사진으로 보면 붕어빵 틀이 클래스이고, 붕어빵이 객체라고 생각하시면 될 것 같습니다.

 

그러면 바로 예제를 보겠습니다. Class를 만드는 방법은 함수를 만드는 방법과 유사합니다.

 

클래스를 만들기 위해서는 함수에서 def 를 썻었던 것 처럼 class 를 선언하고 class이름을 써준뒤 :(콜론)을 써주고 작성을 시작하면 됩니다. 저는 클래스이름을 Calculator(계산기)라고 지었습니다.  클래스는 그안에 변수와 함수를 만들어서 쓸수있습니다. 그것이 함수랑 클래스의 큰차이점입니다. 비슷한 기능의 함수를 클래스 안에 모아 하나의 기능을 수행할수있는 코드를 작성할수있습니다. 그래서 만약 Calculator 라는 클래스를 정의하면 계산을 하기위해 수를 저장하는 변수와 더하기, 빼기, 곱하기, 나누기를 구현한 함수를 정의하여 계산기 Class를 구현하는것입니다

 

# 계산기
class Calculator:
    def variables(self,x,y):
        self.x=x
        self.y=y
        
    def addition(self):
        print(self.x+self.y)
    
    def subtraction(self):
        print(self.x-self.y)
    
    def multiplication(self):
        print(self.x*self.y)
    
    def division(self):
        print(self.x/self.y)

<Class 작성>

그러면 Calculator Class를 이제 만들어 보겠습니다. 첫번째 함수로 variables라는 함수를 만들어 연산에 쓰일 숫자들을 받는 변수들을 만들어줬습니다. 그러나 함수들에 공통적으로 self라는 문구가 보이시나요? self는 특별한 의미가 있다기 보다는, 클래스 안에서 함수를 만들 때 괄호 안에 넣어주는 문구라고 생각해주시면 될 것 같습니다. 그냥 함수와 클래스 안에 있는 함수를 구별해주는 문구말이죠. 그래서 클래스 안에서 함수를 만들 때 괄호 안 첫번째 매개변수는 무조건 self로 지정해주셔야 합니다. 그러고 나서 매개변수 x와 y 두개를 받아 self.x와 self.y에 할당을 하는 것이죠. 이렇게 variables라는 함수는 숫자 2개를 사용자로부터 받아 self.x, self.y에 할당하는 역할을 하는 함수입니다. 그 밑에 저는 사용자로부터 받은 2개의 숫자를 할당받은 2개의 변수로 더하기 연산을 할 수 있는 함수를 만들었습니다. self야 위에서도 말했듯이 클래스 안에서 함수를 만들기 위해 사용해야 하는 관습적인 아이라고 했으니 넘어가겠습니다. 연산을 위한 함수들에 self를 제외하고 다른 매개변수가 없는 이유는 제가 위에 연산을 쓸 때 사용하는 변수를 생성하는 함수를 만들었기 때문입니다.

 

그러면 이제 저희가 만든 Calculator class 가 잘 작동하는지 보겠습니다.

 

클래스의 객체를 생성하기 위해서는 아래와같이 객체를 생성하면 됩니다.

# 인스턴스 이름 = 클래스이름()

cal = Calculator()

객체를 생성했다면 이제 잘 작동하는지 4와 2를 매개변수로 넣어서 작동을 시켜보겠습니다.

 

<클래스를 이용한 연산>

# 4,2 연산
cal.variables(4,2)
cal.addition()
cal.subtraction()
cal.multiplication()
cal.division()

잘 작동하시나요?

 

오늘은 이렇게 간단하게 클래스란 개념에 대해서 배워보았습니다. 클래스 개념에서 파이썬을 처음배우시는 초심자 분들이 많이 포기하고 돌아가십니다 그만큼 어려운 개념입니다. 잘이해가 안돼더라도 계속해서 보시면 금방 이해가 될것입니다. 또한 나만 어려운게 아니라 모두 어려운것이니 조금만더 힘내고 따라오시면 좋을것같습니다. 오늘도 제가 준비한 퀴즈를 한번 풀어보시고 동영상으로 복습하시면 좋을것 같습니다 그러면 다음시간에 뵙겠습니다~!

 

 

<클래스영상>

 

'Python' 카테고리의 다른 글

함수란?  (0) 2020.11.25
for문 이란?  (0) 2020.10.31
if /else/elif 란?  (0) 2020.10.31
연산자란?  (0) 2020.10.21
자료형이란?  (0) 2020.10.20