클래스 속성에 저장하는 연산을 통제하려면 클래스의 클래스(즉, 메타클래스)에 디스크립터를 연결해
야 한다. 기본적으로 사용자 정의 클래스의 메타클래스는
type
이며,
type
에는 속성을 추가할 수 없다.
24
장
에서는 메타클래스를 직접 만들어본다.
이제 파이썬에서 디스크립터를 사용해서 메서드를 구현하는 방법을 알아보자.
23
.
4
메서드는 디스크립터
모든 사용자 정의 함수는
__get__()
메서드를 갖고 있기 때문에 인스턴스를 통해 호출하면
클래스 안의 함수는 바운드 메서드
bound
method
가 된다. 따라서 클래스에 연결된 사용자 정의 함
수는 디스크립터로 작동한다. [예제
23
-
13
]에서는 [예제
23
-
8
]에서 만든
Managed
클래스의
spam()
메서드를 읽는 예를 보여 준다.
예제
23-13
메서드는 논오버라이딩 디스크립터
>>> obj = Managed()
>>> obj.spam ❶
<bound method Managed.spam ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.