더북(TheBook)

여기서 robot1robot2는 같은 클래스로 생성되었다는 점에서 서로 연관이 있을 것 같아 보이지만 사실은 서로 아무 관계가 없는 별개의 객체입니다. 이를 확인해 보고자 두 객체가 저장된 위치를 확인해 보겠습니다. 먼저 변수를 만들면 변수마다 컴퓨터 내 고유한 메모리 주소에 저장됩니다. 즉, 변수마다 저장되는 자신만의 메모리가 있고, 메모리에는 주소가 있습니다. 이 주소를 확인하는 id()라는 내장 함수를 사용하면 변수가 저장된 주소를 알 수 있습니다. 한번 확인해 보겠습니다.

> print(id(robot1))
> print(id(robot2))
11527840
11841672

출력 결과를 보면 서로 다른 값이 나오며, 이는 둘이 서로 다른 변수라는 것을 의미합니다(실행할 때마다 할당 주소가 달라지므로 값은 계속 변합니다).

클래스로 생성되는 객체끼리는 서로 상관없다는 것을 이해했다면, 앞의 Robot 클래스를 조금 변형하여 계속 설명하겠습니다.

class Robot:
    def move(self, direction):
        print("{} 쪽으로 움직입니다.".format(direction))

    def move_left(self):
        self.move("Left")

    def fly(self):
        print("날아갑니다.")
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.