一 .python面向对象 组合执行顺序(空间调用 ,不多说直接看代码理解)
# 类的命名空间调用class Grad(object): bar=555555 def __init__(self,num): self.num=num def aa(self): print("相当的99999999999999999S")class Son(Grad): def aa(self): print("相当的6666666666666666666")ret=[Grad(1),Grad(2),Son(3)]for itme in ret: print(itme.num) # 1 2 3 itme.aa()# 执行顺序# 相当的99999999999999999S# 相当的99999999999999999S# 相当的6666666666666666666"""print("*********************************************")class Grad(object): bar = 555555 def __init__(self, num): self.num = num def aa(self): print("相当88888888888888888888888")class Son(Grad): def __init__(self,num): self.num=num def bb(self): print(self.num,"啦啦啦啦啦啦啦啦啦啦")ret = [Son(55), Grad(2), Son(6)]for itme in ret: print(itme.num) itme.aa()# 执行顺序# 55# 相当88888888888888888888888# 2# 相当88888888888888888888888# 6# 相当88888888888888888888888print("*********************************************")class Grad(object): bar = 555555 def __init__(self, num): self.num = num def aa(self): print("相当88888888888888888888888") def run(self): self.aa()class Son(Grad): def __init__(self, num): self.num = num def bb(self): print(self.num, "啦啦啦啦啦啦啦啦啦啦")ret = [Son(55), Grad(2), Son(6)]for itme in ret: print(itme.num) itme.run()# 执行顺序# 55# 相当88888888888888888888888# 2# 相当88888888888888888888888# 6# 相当88888888888888888888888print("*********************************************")class Grad(object): bar = 555555 def __init__(self, num): self.num = num def aa(self,er): print("相当哈哈哈哈哈哈哈哈哈---",er) def run(self): self.aa(999)class Son(Grad): def aa(self,er): print(self.num, "啦啦啦啦啦啦啦啦啦啦---",er)ret = [Son(55), Grad(2), Son(6)]ret[0].aa(888)ret[1].run()ret[2].aa(5555)# 执行顺序# 55 啦啦啦啦啦啦啦啦啦啦--- 888# 相当哈哈哈哈哈哈哈哈哈--- 999# 6 啦啦啦啦啦啦啦啦啦啦--- 5555
二. 类嵌套组合
# 学校 地址 校区class School(object): def __init__(self,addr,cam): self.addr=addr self.cam=cama1=School("北京","沙河校区")a2=School("深圳","罗湖校区")a3=School("上海","浦东校区")class Teacher(object): def __init__(self,name,age,money,school=None): self.name=name self.age=age self.__money=money self.school=school b1=Teacher("王老师",25,"3000元",a1)b2=Teacher("苍老师",25,"3555元",a2)b3=Teacher("李老师",25,"8555元",a3)class Grade(object): def __init__(self,name,itme,mubers,teacher=None): self.name=name self.itme=itme self.mubers=mubers self.teacher=teacherc=Grade("前端3期","2008年","6个月",b3)print(c.name)print(c.itme)print(c.teacher.name)print(c.teacher.school.cam)print(c.teacher.school.addr)
class School(object): def __init__(self,name,addr,less): self.name=name self.addr=addr self.less=less def aa(self): print("学校有课程了哈哈哈%s"%self.less)obj1=School("新东方","北京校区","python")obj2=School("新东方","上海校区","linux")obj3=School("新东方","深圳校区","java")class Techar(object): def __init__(self,name,age,money): self.name=name self.age=age self.__money=money self.schol=None @property def bb(self): return self.__moneya1=Techar("王老师","25",9222)a2=Techar("李老师","15",522)a3=Techar("仓老师","19",6333)a1.schol=obj1print(f'把{a1.name}--安排到{a1.schol.name},--{a1.schol.addr}---上{a1.schol.less},而工资是--{a1.bb}元')a2.schol=obj2print(f'把{a2.name}--安排到{a2.schol.name},--{a2.schol.addr}---上{a2.schol.less},而工资是--{a2.bb}元')a3.schol=obj3print(f'把{a3.name}--安排到{a3.schol.name},--{a3.schol.addr}---上{a3.schol.less},而工资是--{a3.bb}元')
class School(object): def __init__(self,name,addr,less): self.name=name self.addr=addr self.less=less def aa(self): print("学校有课程了哈哈哈%s"%self.less)obj1=School("新东方","北京校区","python")obj2=School("新东方","上海校区","linux")obj3=School("新东方","深圳校区","java")class Techar(object): def __init__(self,name,age,money): self.name=name self.age=age self.__money=money self.schol=School @property def bb(self): return self.__moneya1=Techar("王老师","25",9222)a2=Techar("李老师","15",522)a3=Techar("仓老师","19",6333)a1.schol=obj1print(f'把{a1.name}--安排到{a1.schol.name},--{a1.schol.addr}---上{a1.schol.less},而工资是--{a1.bb}元')a2.schol=obj2print(f'把{a2.name}--安排到{a2.schol.name},--{a2.schol.addr}---上{a2.schol.less},而工资是--{a2.bb}元')a3.schol=obj3print(f'把{a3.name}--安排到{a3.schol.name},--{a3.schol.addr}---上{a3.schol.less},而工资是--{a3.bb}元')
三 .分页实现
class Page_number(object): def __init__(self,pagr,ret,pag_nu=10): self.pagr=pagr self.ret=ret self.pag_nu=pag_nu @property def start(self): return (self.pagr-1)*self.pag_nu # 起始位置 @property def ende(self): return self.pagr*self.pag_nu # 结束位置 @property def show(self): for roe in self.ret[obj.start:obj.ende]: print(roe)ret=[]for i in range(1,99): ret.append("lover%s"%i)while True: page = int(input("请输入页码!!!!!")) obj=Page_number(page,ret) obj.show
ret=[]for i in range(1,99): ret.append("lover%s"%i)while True: page=int(input("请输入页码!!!!!")) page_num=10 star=(page-1)*10 end=page*10 for row in ret[star:end]: print(row)
class Page_number(object): def __init__(self, pagr, pag_nu=10): self.pagr = pagr self.pag_nu = pag_nu @property def start(self): return (self.pagr - 1) * self.pag_nu # 起始位置 @property def ende(self): return self.pagr * self.pag_nu # 结束位置ret = []for i in range(1, 99): ret.append("lover%s" % i)while True: page = int(input("请输入页码!!!!!")) obj = Page_number(page) for row in ret[obj.start:obj.ende]: print(row)