zoukankan      html  css  js  c++  java
  • python isinstance()与type()的区别

    例如在继承上的区别

    • isinstance() 会认为子类是一种父类类型,考虑继承关系。
    • type() 不会认为子类是一种父类类型,不考虑继承关系。
    class A:
        pass
    
    class B(A):
        pass
    
    isinstance(A(), A)    # returns True
    type(A()) == A        # returns True
    isinstance(B(), A)    # returns True
    type(B()) == A        # returns False
    

     创建一个A对象,再创建一个继承A对象的B对象,使用 isinstance() 和 type() 来比较 A() 和 A 时,由于它们的类型都是一样的,所以都返回了 True。而B对象继承于A对象,在使用isinstance()函数来比较 B() 和 A 时,由于考虑了继承关系,所以返回了 True,使用 type() 函数来比较 B() 和 A 时,不会考虑 B() 继承自哪里,所以返回了 False。

    如果要判断两个类型是否相同,则推荐使用isinstance()。

  • 相关阅读:
    php 解析xml
    php
    php 设置自动加载某个页面
    Mac
    mysql
    Git
    C#
    C# 正则表达式
    C# ASCII码排序
    (转)datagridview 自定义列三步走
  • 原文地址:https://www.cnblogs.com/baxianhua/p/10149363.html
Copyright © 2011-2022 走看看