• 十三. python面向对象 组合执行顺序


    一 .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
    # 相当88888888888888888888888
    
    print("*********************************************")
    
    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
    # 相当88888888888888888888888
    
    print("*********************************************")
    
    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=cam
    a1=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=teacher
    c=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.__money
    
    a1=Techar("王老师","25",9222)
    a2=Techar("李老师","15",522)
    a3=Techar("仓老师","19",6333)
    
    a1.schol=obj1
    print(f'把{a1.name}--安排到{a1.schol.name},--{a1.schol.addr}---上{a1.schol.less},而工资是--{a1.bb}元')
    a2.schol=obj2
    print(f'把{a2.name}--安排到{a2.schol.name},--{a2.schol.addr}---上{a2.schol.less},而工资是--{a2.bb}元')
    a3.schol=obj3
    print(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.__money
    
    a1=Techar("王老师","25",9222)
    a2=Techar("李老师","15",522)
    a3=Techar("仓老师","19",6333)
    
    a1.schol=obj1
    print(f'把{a1.name}--安排到{a1.schol.name},--{a1.schol.addr}---上{a1.schol.less},而工资是--{a1.bb}元')
    a2.schol=obj2
    print(f'把{a2.name}--安排到{a2.schol.name},--{a2.schol.addr}---上{a2.schol.less},而工资是--{a2.bb}元')
    a3.schol=obj3
    print(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)
  • 相关阅读:
    线程基础知识06 synchronized使用javap查看相关指令
    线程基础知识10volatile
    CSDN文章和博客园文章正确的转载方法
    记一次愚蠢的内存泄漏问题的排查
    常用五种排序方法 冒泡排序、快速排序、插入排序、希尔排序、归并排序
    virtualbox虚拟机使用
    itextsharp读取pdf时报错PdfReader not opened with owner password
    Python自动批量修改服务器密码
    Java设计模式——建造者模式
    Java设计模式——迭代器模式
  • 原文地址:https://www.cnblogs.com/Sup-to/p/11062315.html
Copyright © 2020-2023  润新知