python:isinstance()

179 阅读1分钟

什么是isinstance()

isinstance()函数是Python中的一个内建函数。
是用来判断一个对象的变量类型。
如果参数object是classinfo的实例,返回True。
如果object不是一个给定类型的的对象,则返回结果总是False

如何用?

Python判断变量的类型有两种方法:type() 和 isinstance()
对于基本的数据类型两个的效果都一样

<1>type()
    ip_port = ['219.135.164.245',3128]
    if type(ip_port) is list:
        print('list数组')
    else:
        print('其他类型')
<2>isinstance()
    ip_port = ['219.135.164.245',3128]
    if isinstance(ip_port,list):
        print('list数组')
    else:
        print('其他类型')

区别之处

isinstance() 和 type() 的区别在于:

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