python内置函数isistance()和type()
一、简介
isinstance()
函数来判断一个对象是否是一个已知的类型,类似 type()
。
二、详解
isinstance()和type()的区别:
type()
不会认为子类是一种父类类型,不考虑继承关系。isinstance()
会认为子类是一种父类类型,考虑继承关系。
isinstance()语法:isinstance(object, classinfo)
type()语法:type(object)
或者type(name, bases, dict)
参数:
name是类的名字,
bases是基类的元组
dict是类内命名空间变量
三、代码
isinstance普通用法
a = 'ABC'
print(isinstance(a, str))
True
# isinstance
class A(object):
def __init__(self, a):
self.a = a
class B(A):
def __init__(self, b, *args):
super().__init__(*args)
self.b = b
user_b = B(1, 2)
print(user_b.a, user_b.b)
print(isinstance(user_b, B))
print(isinstance(user_b, A)) # isinstance可以查找继承的类型
print(type(user_b) == B)
print(type(user_b) == A) # type不能查找继承的类型
2 1
True
True
True
False