Skip to content

Commit 854d3cc

Browse files
committed
Update method_overloading_extending_and_providing.py
1 parent b2de9e4 commit 854d3cc

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,51 @@
11
# Method Overloading - Extending and Providing
22
# Python beyond the basics - object oriented programming
33

4+
import abc
5+
6+
class GetSetParent(metaclass = abc.ABCMeta):
7+
8+
def __init__(self,value):
9+
self.value = 0
10+
11+
def set_val(self,value):
12+
self.val = value
13+
14+
def get_val(self):
15+
return self.val
16+
17+
@abc.abstractmethod
18+
def showdoc(self):
19+
return
20+
21+
22+
class GetSetInt(GetSetParent):
23+
def set_val(self,value):
24+
if not isinstance(value, int):
25+
value = 0
26+
"""
27+
if the value is not an integer then value is set as
28+
the superclass/parent classes method "set_val" result
29+
30+
"super(GetSetInt,self)" means the parent class of "GetSetInt"
31+
"""
32+
super(GetSetInt, self).set_val(value)
33+
34+
def showdoc(self):
35+
print("GetSetInt object ({0}), only accepts integer values".format(id(self)))
36+
37+
class GetSetList(GetSetParent):
38+
39+
def __init__(self,value=0):
40+
self.vallist = [value]
41+
42+
def get_val(self):
43+
return self.vallist[-1]
44+
def get_vals(self):
45+
return self.vallist
46+
47+
def set_val(self,value):
48+
self.vallist.append(value)
49+
50+
def showdoc(self):
51+
print("GetSetList object, len{0}, stores history of values set".format(len(self.vallist)))

0 commit comments

Comments
 (0)