• Python基础作业第十九天


    1.类变量和实例变量的区别

      实例变量:每个实例都应该拥有的对象

      类变量:一类事物统一拥有的变量,所有的该类对象都共享这个变量(最好用类名访问)

    2.super的作用

    1. super并不是一个函数,是一个类名,形如super(B, self)事实上调用了super类的初始化函数,
           产生了一个super对象;
      2. super类的初始化函数并没有做什么特殊的操作,只是简单记录了类类型和具体实例;
      3. super(B, self).func的调用并不是用于调用当前类的父类的func函数;
      4. Python的多继承类是通过mro的方式来保证各个父类的函数被逐一调用,而且保证每个父类函数
           只调用一次(如果每个类都使用super);
      5. 混用super类和非绑定的函数是一个危险行为,这可能导致应该调用的父类函数没有调用或者一
           个父类函数被调用多次。 

    3. isinstance和type的区别,并用代码说明 

    type(obj) 表示查看obj是由哪个类创建的.也可以帮我们判断xxx是否是xxx数据类型的

    class Base:
        pass
    class Foo(Base):
        pass
    class Bar(Foo):
        pass
    
    ret=Base()
    print(ret,type(ret))

    isinstance可以判断该对象是否是xxx家族体系中的(只能往上判断),也可以判断xxx是yyy类型的数据. 但是isinstance没有type那么精准.

    class Base:
        pass
    class Foo(Base):
        pass
    class Bar(Foo):
        pass
    
    print(isinstance(Bar(),Bar))
    print(isinstance(Foo(),Bar))

    4.补全代码

    def func(arg):
         """
         判断arg是否可以被调用,如果可以则执行并打印其返回值,否则直接打印结果
         :param arg:
         """
         pass

    def func(arg):
        if callable(arg)==True:
            return arg()
        else:
            print(callable(arg))

    5.补全代码
     def func(*args):
         """
          args Foo
         :param args:
         """
         pass

    class Boy:
        pass
    class Girl:
        pass
    
    def func(*args):
        a=0
        b=0
        for i in args:
            if type(i)==Boy:
                a +=1
            elif type(i)==Girl:
                b +=1
        return a,b

    6.看代码写结果并画图表示对象和类的关系以及执行流程

    class StarkConfig(object):
        list_display=[]
        def get_list_display(self):
            self.list_display.insert(0,33)
            return self.list_display
    class RoleConfig(StarkConfig):
        list_display = [11,22]
    s1 = StarkConfig()
    s2 = StarkConfig()
    result1 = s1.get_list_display()
    print(result1)#[0,33]
    result2 = s2.get_list_display()
    print(result2)

    结果:[33]

    [33,33]

    7.看代码写结果并画图表示对象和类的关系以及执行流程

    class StarkConfig(object):
        list_display = []
        def get_list_display(self):
            self.list_display.insert(0,33)
            return self.list_display
    class RoleConfig(StarkConfig):
        list_display = [11,22]
    s1 = StarkConfig()
    s2 = RoleConfig()
    result1 = s1.get_list_display()
    print(result1)
    result2 = s2.get_list_display()
    print(result2)

    结果:[33]

    [33,11,22]

    8.看代码写结果并画图表示对象和类的关系以及执行流程

    class StarkConfig(object):
        list_display = []
        def get_list_display(self):
            self.list_display.insert(0,33)
            return self.list_display
    class RoleConfig(StarkConfig):
        list_display = [11,22]
    s1 = RoleConfig()
    s2 = RoleConfig()
    result1 = s1.get_list_display()
    print(result1)
    result2 = s2.get_list_display()
    print(result2)

    结果:[33,11,22]

    [33,33,11,22]

    9.看代码写结果

    class Base(object):
        pass
    class Foo(Base):
        pass
    print(issubclass(Base, Foo))
  • 相关阅读:
    geoserver发布地图服务WMTS
    geoserver发布地图服务WMS
    geoserver安装部署步骤
    arcgis api 3.x for js 入门开发系列十四最近设施点路径分析(附源码下载)
    arcgis api 3.x for js 入门开发系列十三地图最短路径分析(附源码下载)
    cesium 之自定义气泡窗口 infoWindow 后续优化篇(附源码下载)
    arcgis api 3.x for js 入门开发系列十二地图打印GP服务(附源码下载)
    arcgis api 3.x for js 入门开发系列十一地图统计图(附源码下载)
    arcgis api 3.x for js 入门开发系列十叠加 SHP 图层(附源码下载)
    arcgis api 3.x for js入门开发系列九热力图效果(附源码下载)
  • 原文地址:https://www.cnblogs.com/zhoushibin-1/p/9721201.html
Copyright © 2020-2023  润新知