Python 은 강력한 객체지향을 지원하는 언어 중에 하나이다. 그리고 객체지향에서 반복의 제거와 코드의 재사용성을 높이기 위해 상속이라는 개념을 자주 활용한다. 상속은 강력한 도구 중에 하나이지만 그만큼 큰 잠재적 위험도 가지고 있다. 이러한 위험은 주로 상속받은 클래스가 부모 클래스와 지나치게 높은 결합력을 가지는 데 있어서 발현된다. " 경험상 좋은 코드는 대체로 높은 응집력과 낮은 결합력을 가지고 있었다. " 이러한 리스크를 피하면서 상속을 잘 활용하기 위해서는 먼저 자식 클래스가 상속받은 부모 클래스의 메서드를 적극 활용하는지 확인해 볼 필요가 있다. 만약 대부분의 메서드가 필요하지 않거나 다시 재정의 (overriding)를 해야 한다면 아래와 같은 설계상의 오류를 가지고 있다고 볼 수 있다...