diff --git a/kjg/python-the-hard-way/e42.py b/kjg/python-the-hard-way/e42.py new file mode 100644 index 0000000..bf71bbd --- /dev/null +++ b/kjg/python-the-hard-way/e42.py @@ -0,0 +1,81 @@ +## Animal is-a object (yes, sort of confusing) look at the extra credit +class Animal(object): + pass + + +## 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): + pass + + +## Salmon is-a Fish +class Salmon(Fish): + pass + + +## Halibut is-a Fish +class Halibut(Fish): + pass + + +## rover is-a Dog +rover = Dog("Rover") + +## 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() diff --git a/kjg/python.org b/kjg/python.org index 82cad8f..ecec546 100644 --- a/kjg/python.org +++ b/kjg/python.org @@ -147,3 +147,5 @@ How to use dictionary How to use class **** ex41 practice class +**** ex42 +review class and object