class Person:
def __init__(self,name,job=0,pay=0):
self.name=name
self.job=job
self.pay=pay
def lastName(self):
return self.name.split()[-1]
def giveRaise(self,percent):
self.pay=int(self.pay*(1+percent))
def __str__(self):
return '[person:%s,%s]'%(self.name,self.pay)
class Manager(Person):
def __init__(self,name,pay):
self.person=Person(name,'mgr',pay)
def giveRaise(self,percent,bonus=.10):
Person.giveRaise(self,percent+bonus)
def __getattr__(self,attr):
return getattr(self.person,attr)
def __str__(self):
return str(self.person)
bob=Person('Bob','div',10000)
sue=Person('Sue Smith','div',10000)
tom=Manager('tom',50000)
class Department:
def __init__(self,*args):
self.members=list(args)
def addMember(self,person):
self.members.append(person)
def giveRaise(self,percent):
for person in self.members:
person.giveRaise(percent)
def showAll(self):
for person in self.members:
print(person)
development=Department(bob,sue)
development.addMember(tom)
development.giveRaise(.10)
development.showAll()
>>> from person import Person
>>> bob=Person('Bob smith')
>>> print(bob)
[person:Bob smith,0]
>>> bob.__class__
<class 'person.Person'>
>>> bob.__class__.__name__
'Person'
>>> list(bob.__dict__.keys())
['name', 'job', 'pay']
>>> for key in bob.__dict__:
print(key,'=.',bob.__dict__[key])
name =. Bob smith
job =. 0
pay =. 0
>>> for key in bob.__dict__:
print(key,'=>',getattr(bob,key))
name => Bob smith
job => 0
pay => 0
>>>