forked from kumaya/python-programs
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoopsConcept.py
More file actions
Latest commit
131 lines (91 loc) · 2.44 KB
/
Copy pathoopsConcept.py
File metadata and controls
131 lines (91 loc) · 2.44 KB
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
"""
This example shows concept of inheritance in python
"""
# Parent class
classPerson(object):
defspeak(self):
print"I can speak"
# Child class
classMan(Person):
defwear(self):
print"I wear shirt"
instanceOfChildClass=Man()
instanceOfChildClass.wear()
instanceOfChildClass.speak() # speak method is inherited from parent class
print"*"*80
"""
This example shows concept of multiple inheritance in python
class FromKashmir inherits class Indian as well as class Man.
inheritance is left to right
"""
classIndian(object):
defwear(self):
print"I wear sherwani"
defspeak(self):
print"I speak Hindi"
classFromKashmir(Indian, Man):
defparadise(self):
print"Paradise on earth"
instanceOfFromKashmirClass=FromKashmir()
instanceOfFromKashmirClass.paradise()
instanceOfFromKashmirClass.speak()
instanceOfFromKashmirClass.wear() # Left to right inheritance. method wear of class Indian called
print"*"*80
"""
Encapsulation in python.
"""
classTest(object):
defpublicMethod(self):
print"You can see mee"
def__privateMethod(self): # Adding '__' in front of method/variable hide them
print"You cannot see me"
instanceOfTestClass=Test()
instanceOfTestClass.publicMethod()
instanceOfTestClass._Test__privateMethod() # Nothing is private in python. It is just a rule and not limitation.
# using _ClassName_methodName it can be called so we can't access them
# because of wrong names
print"*"*80
"""
Polymorphism in python
"""
classBird(object):
defname(self):
pass
deffly(self):
print"fly"
defbuildNest(self):
pass
classCrow(Bird):
defname(self):
print"I am a crow"
defbuildNest(self):
print"I build nest"
classCuckoo(Bird):
defname(self):
print"I am a cuckoo"
defbuildNest(self):
print"I don't build nests"
classTestBirds(Bird):
defprintName(self, bird):
bird.name()
defgoFly(self, bird):
bird.fly()
defbuildNest(self, bird):
bird.buildNest()
TestBirds=TestBirds()
crow=Crow()
cuckoo=Cuckoo()
TestBirds.printName(crow)
TestBirds.goFly(crow)
TestBirds.buildNest(crow)
TestBirds.printName(cuckoo)
TestBirds.goFly(cuckoo)
TestBirds.buildNest(cuckoo)
print"*"*80
"""
more Polymorphism
variable can support any object which supports add operation
"""
print1+2
print'kuch'+'Bhi'
print [1, 2, 3] + [4, 5, 6]