2.10.2 인스턴스화
클래스는 설계도이기 때문에 클래스를 선언만 하고 생성하지 않으면 아무 일도 일어나지 않습니다. 자동차를 만들 수 있는 설계도가 있다면 설계에서 그치는 것이 아니라 그대로 직접 만들어야만 사용 가능한 자동차가 되듯이, 파이썬 클래스라는 설계도를 바탕으로 실체화해야 정의한 대로 사용할 수 있습니다. 여기서 클래스를 실체화하는 것을 객체를 생성한다(객체화) 혹은 인스턴스화한다고 표현하며, 이때 생성된 것을 객체 혹은 인스턴스라고 합니다. 다음은 Robot 클래스를 객체화(인스턴스화)하는 방법입니다.
robot1 = Robot()
만들어 놓은 클래스명 다음에 소괄호 ()를 사용하고 이를 robot1이라는 변수로 만들어 저장했습니다. 여기서 robot1은 우리가 만든 Robot 클래스의 객체 또는 인스턴스라고 표현합니다. 하지만 객체라는 말이 범용적으로 쓰여서 사용하다 보면 클래스나 객체, 인스턴스 모두 결국 같은 말처럼 느껴지기도 하는데요. 자동차 설계도로 자동차를 만들 수 있다고 해서 설계도를 자동차라고 하지 않듯이 구분이 필요한 표현입니다. 더욱 정확하게 표현을 정리하면 다음과 같습니다.
• robot1은 객체입니다.
• robot1 객체는 Robot 클래스의 인스턴스입니다.
클래스로 생성된 것을 가리킬 때는 객체라고 표현하는 것이 더욱 정확하며, 인스턴스는 객체와 클래스 간 관계를 나타낼 때 사용하면 더 적절하다는 것을 기억하길 바랍니다.