더북(TheBook)

Point 클래스를 정의하면 클래스 객체(class object)가 만들어진다.

>>> Point

<class '_ _main_ _.Point'>

Point는 최상위 레벨에 정의되어 있으므로 전체 이름_ _main_ _.Point가 된다. 클래스 객체는 객체를 생성하는 공장과 같다. Point를 생성하고 싶다면 Point를 함수처럼 호출하면 된다.

>>> blank = Point()

>>> blank

<_ _main_ _.Point object at 0xb7e9d3ac>

반환값은 Point 객체에 대한 참조이며, 여기서는 blank에 할당했다.

새 객체를 생성하는 것을 인스턴스화(instantiation)라고 하며, 객체는 클래스의 인스턴스(instance)라고 한다.

인스턴스를 출력하면 파이썬은 인스턴스가 속한 클래스는 무엇이고, 메모리에서 어디에 저장되어 있는지 알려준다(접두어 0x는 다음에 오는 숫자가 16진수라는 뜻이다).

모든 객체는 어떤 클래스의 인스턴스이므로 객체인스턴스는 서로 바꿔쓸 수 있다. 그러나 이 장에서는 프로그래머 정의 타입에 대해 얘기할 때만 인스턴스를 사용하겠다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.