## Animal is-a object (yes, sort of confusing) look at the extra credit class Animal(object): def something(self): print("base") ## Dog is-a Animal class Dog(Animal): def __init__(self, name): ## Dog has-a name self.name = name ## Cat is-a Animal class Cat(Animal): def __init__(self, name): ## Cat has-a name self.name = name ## Person is-a object class Person(object): def __init__(self, name): ## Person has-a name self.name = name ## Person has-a pet of some kind self.pet = None ## Employee is-a person class Employee(Person): def __init__(self, name, salary): ## heritage from parents super(Employee, self).__init__(name) ## Employee has-a salary self.salary = salary ## Fish is-a object class Fish(object): def __init__(self): print("Base Fish") ## Salmon is-a Fish class Salmon(Fish): pass ## Halibut is-a Fish class Halibut(Fish): pass ## rover is-a Dog rover = Dog("Rover") rover.something() ## satan is-a Cat satan = Cat("Satan") ## mary is-a Person mary = Person("Mary") ## mary's pet is satan mary.pet = satan print(mary.pet.name) ## frank is-a Employee frank = Employee("Frank", 120000) ## frank's pet is rover frank.pet = rover print(frank.name) print(frank.pet.name) print(frank.salary) ## flipper is-a Fish flipper = Fish() ## crouse is-a Salmon crouse = Salmon() ## harry is-a Halibut harry = Halibut()