파이썬의 빌트인 데이터 타입 클래스들은 성능상의 문제로 메소드간 상호참조 없이 c로 각각 하드코딩되어있는 경우가 많음

그래서 상속받아 사용하기에는 메소드들의 유기성이 떨어짐


예를 들어 dict를 상속받은 다음 __getitem__ 메소드를 오버라이딩해서 행동방식을 변경했다 치자

그러면 직관적으로는 get 메소드의 행동방식도 변경되어야 할 것 같은데 위의 이유로 안됨


이때문에 파이썬에는 collections.UserList, collections.UserDict 등의 메소드끼리 상호참조시켜놓은 상속용 클래스들을 따로 만들어 놓았음

아니면 collections.abc 밑의 MutableSequence, MutableMapping 등의 추상 클래스를 상속받을 수도 있겠고

list나 dict 등을 상속 받는 건 가능한 피해야 함