#show.py 该类用于打印实例对象
class attrdisplay():
def gatherattrs(self):
attrs=[]
for key in sorted(self.__dict__):
attrs.append('%s=%s'%(key,getattr(self,key)))
return ','.join(attrs)
def __str__(self):
return '[%s:%s]'%(self.__class__.__name__,self.gatherattrs())
if __name__=='__main__':
class toptest(attrdisplay):
count=0
def __init__(self):
self.attr1=a.count
self.attr2=a.count+1
a.count+=2
class subtest(a):
pass
x,y=toptest(),subtest()
print(x)
print(y)
#person.py
from show import attrdisplay
class person(attrdisplay):
def __init__(self,name,job=None,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,pay=%s]'%(self.name,self.pay)'''
class manager(person):
def __init__(self,name,pay):
person.__init__(self,name,'manager',pay)
def giveraise(self,percent,bonus=0.1):
person.giveraise(self,percent+bonus)
if __name__=='__main__':
bob=person('bob smith')
sue=person('sue jhones',job='dev',pay=10000)
tom=manager('tom jones',10000)
#print(bob.name,bob.pay)
#print(sue.name,sue.pay)
'''print(bob.lastname(),sue.lastname())
sue.giveraise(0.1)
print(sue.pay)
print(bob)#自动调用__str__打印实例对象
print("---------")
tom=manager('tom jones','mgr',10000)
tom.giveraise(0.1)
print(tom)'''
for obj in (bob,sue,tom):
obj.giveraise(0.1)
print(obj)
类例5
最新推荐文章于 2020-01-13 16:15:22 发布