Defining A Class Hierarchy In Python