세조목

PYTHON 정리(CLASS)(24.01.06) 본문

데이터 분석 공부/Python

PYTHON 정리(CLASS)(24.01.06)

세조목 2024. 1. 6. 23:14

CLASS

CLASS란 무엇일까?

CLASS ≒ 빵틀

이라고 이해하면 쉽다.

빵틀에 밀가루와 팥을 넣고 구우면 빵이 나오는데 어떤 재료를 넣느냐에따라서 다양한 빵들이 나온다.

CLASS도 마찬가지이다.

CLASS의 경우 CLASS라는 빵틀에 여러가지 요소들을 넣어서 다양한 객체(인스턴스)를 만들어낸다.

CLASS의 구조를 보면 무슨 말인지 이해될것이다.

class join_customer():
    def __init__(self, name, email, point):
        self.name = name
        self.email = email
        self.point = point

    def add_points(self, plus):
        self.point = self.point + plus
        print(self.point)

    def reduce_points(self, minus):
        self.point = self.point - minus
        print(abs(self.point))

c = join_customer('Alice', 'alice@example.com', 100)
c.add_points(50)
c.reduce_points(20)
c.reduce_points(150)

위 코드를 보면 class의 이름을 지어준 후 class 하위에 함수를 의미하는 def가 여러가지 적혀있다.

join customer라는 이름의 빵틀(class)에 'Alice', 'alice@example.com', 100이라는 속재료를 넣으면 '__init__', 'add_points', 'reduce_points' 라는 빵틀의 기능에 따라서 빵(객체)이 출력된다.

 

class 안에 적힌 def는 정확히 얘기하자면 함수가 아닌 '메소드'이다.

'메소드'는 특정 클래스에서만 사용할 수 있는 함수라고 이해하면 된다.

예를 들어 리스트에서만 쓸 수 있는 메소드의 대표적인 예로 append가 있는데

'변수명.append'처럼 '.~~~'라고 붙는것을 메소드라고 부르며

class의 경우도 class안에 적힌 def들이 이같은 기능을 한다고 이해하면 된다.