register()의 실제 용법

매일 공부(ML)·2023년 2월 8일
0

Fluent Python

목록 보기
79/130

객체지향 상용구

인터페이스: 프로토콜에서 ABC까지

register()의 실제 용법

register()를 데커레이터로도 사용할 수 있지만, 다른 곳에서 정의된 클래스를 등록하기 위해서 함수 형태로 사용하는 경우가 더 많습니다.

"""
collections, abc에 대한 소스코드에선 tuple, str,range,memoryview 내장 자료형이 다음과 같이 Sequence의 가상 서브클래스로 등록되었다.
"""
Sequence.register(tuple)
Sequence.register(str)
Sequence.register(range)
Sequence.register(memoryview)

내장 자료형이 _collections_abc.py에 있는 ABC에 등록이 되어있고, 모듈이 임포트될 때만 등록되는데, ABC에 접근하면 어째든 임포트를 해야하므로 아무런 문제가 되지 않고, MutablMapping에 접근 해야 isinstance(my_dict, MutableMapping)코드를 실행할 수 있다.

profile
성장을 도울 아카이빙 블로그

0개의 댓글