zoukankan      html  css  js  c++  java
  • 内置函数拾遗:isinstance和issubclass

    isinstance

      isinstance(obj1,obj2):判断对象与类之间的关系,判断第一个参数是否是第二个参数的实例。

    print(isinstance(1, int))   #判断第一个值是否是第二个值得实例
    >>>
    True
    print(isinstance('1', str))
    >>>
    True
    

      回顾一下,之前我们学过的type()函数,is操作符用来比较两个对象的内存地址是否相等。

      那么type()函数和isinstance()函数两者有什么区别呢?

    print(type(1) is int)
    print(isinstance(1,int))
    >>>
    True
    True
    
    #从上面的结果看,两者的结果都是True,那么type()与isinstance()的区别在哪呢?
    #从接下来的例子,就能够清晰看出来。
    
    class A:pass
    class B(A):pass
    b = B()
    
    print(isinstance(b, B))   #True
    print(isinstance(b, A))   #True
    
    print(type(b))         #<class '__main__.B'>
    print(type(b) is B)    #True
    print(type(b) is A)    #False
    
    #总结:
        isinstance()是可以用在继承的关系上;而type()不能用来检测继承关系。
    

    issubclass

      issubclass(obj1,obj2):用来描述一个类与另一个类之前的关系,判断一个类是否是另一个类的子类。

    class A:pass
    class B(A):pass
    
    print(issubclass(A, B))  #False
    print(issubclass(B, A))  #True
    
    #总结:
        第一个参数是子类,第二个参数是父类
    

      

  • 相关阅读:
    修改滚动条样式
    svg转png
    封装普通数据为树菜单结构数据模式
    js调用打印机打印
    jq 上传下载进度条
    html内容溢出部分...
    html调用html的方法
    4 人类社会及其发展规律
    7 社会主义
    8 共产主义
  • 原文地址:https://www.cnblogs.com/hebbhao/p/9593471.html
Copyright © 2011-2022 走看看