-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathex45.py
135 lines (92 loc) · 2.35 KB
/
ex45.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
## 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
## Animal 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):
## ?? hmm what is this strange magic?
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 has-a pet satan
mary.pet = satan
## frank is-a Employee, has-a salary of 120000
frank = Employee("Frank", 120000)
## mary has-a pet rover
frank.pet = rover
## flipper is-a Fish
flipper = Fish()
## crouse is-a Salmon
crouse = Salmon()
## harry is-a Halibut
harry = Halibut()
class Person:
''' The class define Person. '''
population = 0
def __init__(self, name):
'''Initializes the person's data'''
self.name = name
print 'Intializing ' + name
self.__class__.population += 1
def __del__(self):
"I'm dying... "
print self.name + " die."
self.__class__.population -= 1
print "there's %d left" % self.__class__.population
def hello(self):
'''Say Hello..'''
print 'Hello, my name is %s' % self.name
@staticmethod
def howmany():
print "there's %d left" % Person.population
tom = Person("tom")
tom.hello()
Person.howmany()
cat = Person("cat")
cat.hello()
Person.howmany()
class Parent(object):
color = 'red'
def __init__(self, color):
self.color = color
class Child(Parent):
color = 'green'
def __init__(self, color):
self.color = color
dad = Parent('yellow')
son = Child('blue')
print son.color
print son.__class__.color
print super(son.__class__, son).color