인터페이스 상속과 구현 상속을 구분한다.
ABC를 이용해서 인터페이스를 명확히 한다.
코드를 재사용하기 위해 믹스인을 사용한다.
믹스인 클래스로 객체를 생성하면 안되며, 믹스인 클래스를 상속하는 구상 클래스는 다른 클래스도 상속해야 한다.
이름을 통해 믹스인임을 명확히 한다.
ABC가 믹스인이 될 수는 있지만, 믹스인이라고 해서 ABC인 것은 아니다.
두 개 이상의 구상 클래스에서 상속받지 않는다.
class MyConcreteClass(Alpha, Beta, Gamma):
"""구상 클래스: 객체를 생성할 수 있다."""
사용자에게 집합 클래스를 제공한다.
class Widget(BaseWidget, Pack, Place, Grid):
""" 내부 클래스
Pack, Place, Grid 기하 도형 관리자로 위치를 지정할 수 있는 위젯 기반 클래스"""
pass
클래스 상속보다 객체 구성을 사용하라