Trip to Python

클래스(Class)

Kestrel 2022. 11. 18. 12:47

파이썬을 공부하면서 가장 처음 이해가 어려웠던 것이 클래스 개념이다. 하도 이해가 안되어서 같은 내용을 여러 유튜버를 찾아보면서 어렵게 조금 이해했다.

 

그렇다고 완벽하게 클래스 개념을 이해 했다고 보기는 어렵지만 이해한 내용을 잊지 않도록 기록하고자 한다.

 

*클래스는 왜 사용하는가?

 

클래스는 여러 변수들을 묶어서 한번에 관리할 수 있기에 사용한다.

관리하는 변수들을 바탕으로 함수를 이용해 기능을 부여할 수도 있는데 일단 위 목적에 충실하여 설명해보기로한다.

 

보통 클래스를 설명할 때 설계도와 설명서를 합친 것이라고 설명들하고 비유로는 빵틀에 비유하기도 한다. 

나만의 예시를 들자면 포켓몬빵 데이터 관리에 있어서 이름, 가격, 캐릭터 변수들을 빵마다 일일이 입력한다면 비효율적일 것이다.  이 때, 클래스를 선언하여 이름, 가격, 캐릭터의 틀을 미리 잡아두고 각 빵마다 해당 값을 입력만 해주면 더 쉽게 관리할 수 있을 것이다.

 

클래스를 사용하지 않고 아래와 같이 따로따로 입력할 수 있다.

 

name1 = 돌아온 고오스 초코케익

price1 = 1000

character1 = 고오스

 

name2 = 돌아온 로켓단 초코롤

price2 = 1500

character2 = 로켓단

 

name3 = 파이리의 화르륵 핫소스빵

price3 = 2000

character3 = 파이리

 

이미 우리가 name, price, character 변수를 중복해서 사용한다는 것을 안다면 class를 사용해 간단하게 처리할 수있다.

 

class PokemonBread:

 

먼저 위와 같이 class의 이름을 선언한다. 나는 PokemonBread로 정하였다.

 

그리고 그 아래 

 

def __init__(self, name, price, character)

 self.name = name

 self.price = price

 self.character = character

 

를 입력해준다. 이 부분이 앞서 비유했던 설계도이자 빵틀로, 변수를 관리해주는 함수인데 

 

p1 = PokemonBread('돌아온 고오스 초코케익', 1000, '고오스')

 

를 입력해주면서 p1은 self로 각 변수 항목은 init 함수의 인자로 작동하여 

print(p1.name, p1.price, p1.character)를 입력했을 때 쉽게 결과를 출력할 수 있다.

지금은 데이터가 3가지라 불필요해 보이지만 수천 혹은 수만개의 데이터가 있다면 클래스를 활용함이 바람직하다.

 

다른 사람이 봐도 이해가 될 정도로 설명을 해보고자 했지만 더 이해의 깊이가 깊어야 가능할 것 같다.