더북(TheBook)


4.2클래스를 사용해 객체 만들기


앞서 객체의 의미를 배웠습니다. 우리는 객체에 중요한 의미를 부여했는데 컴퓨터 입장에서는 어떨까요? 컴퓨터는 객체가 현실 세계의 사물을 모델링한 것이라는 중요한 의미를 모릅니다. 컴퓨터에게 객체란 그저 메모리의 한 단위일 뿐입니다. 객체라는 메모리 공간을 할당한 다음 객체 안에 묶인 변수를 초기화하고 함수를 호출하는 데 필요한 것이 클래스일 뿐입니다. 클래스는 객체를 생성해 내는 템플릿이고, 객체는 클래스를 이용해 만들어진 변수와 함수를 가진 메모리 공간입니다. 둘은 서로 다른 존재이며 메모리 공간도 다릅니다.

객체와 매우 유사한 개념으로 인스턴스(instance)가 있습니다. 둘의 차이를 살펴보면 객체는 객체 자체에 초점을 맞춘 용어고, 인스턴스는 이 객체가 어떤 클래스에서 만들어졌는지에 초점을 맞춘 용어입니다. “이 객체는 Person이라는 클래스의 인스턴스야”라고 말할 수 있습니다. 이전 절에서 만든 Person을 클래스를 이용해 만들어 보고, 만들면서 필요한 용어도 정리하겠습니다.

코드 6-12 oop1/oop1_2/class_Person.py ①

class Person:                           #1
    def __init__(self, name, money):  #2
        self.name = name                #3
        self.money = money

    def give_money(self, other, money): #4
        self.money -= money
        other.get_money(money)

    def get_money(self, money):
        self.money += money

    def show(self):
        print('{} : {}'.format(self.name, self.money))
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.