您好,欢迎访问一九零五行业门户网

isinstance在python中是什么意思

在python中,isinstance的意思是“类型判断”。isinstance()是一个内置函数,用于判断一个对象是否是一个已知的类型,语法“isinstance(object, type)”,如果是则返回true,否则返回false;而如果type参数是元组,而对象是元组中的类型之一,那么此函数也将返回true。
本教程操作环境:windows7系统、python3版,dell g3电脑
在python中,isinstance的意思是“类型判断”。
python isinstance() 函数
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
如果指定的对象拥有指定的类型,则 isinstance() 函数返回 true,否则返回 false。
如果 type 参数是元组,则如果对象是元组中的类型之一,那么此函数将返回 true。
语法:
isinstance(object, type)
参数描述
object 必需。对象。
type 类型或类,或类型和/或类的元组。
示例1:检查 "hello" 是否是 type 参数中描述的类型之一
x = isinstance("hello", (str, float, int, str, list, dict, tuple))print(x)
示例2:检查 y 是否是 myobj 的实例
class myobj: name = "bill"y = myobj()x = isinstance(y, myobj)print(x)
扩展知识:type和isinstance的区别
python中type可以获得一个对象的数据类型,isinstance可以判断一个对象的数据类型,他们的区别有两点
1. isinstance更加灵活
type只是返回一个对象的数据类型,而isinstance可以判断这个对象的数据类型是否为某几个数据类型中的一个。
假设我们要判断一个对象的数据类型是否为int或者float,两个函数的写法示例如下
a = 4# 使用typeif type(a) == int or type(a) == float: print('yes')# 使用isinstanceif isinstance(a, (int, float)): print('yes')
显然,在这种场景下,isinstance更有优势
2. 判断存在继承关系的情况
class a: passclass b(a): passa = a()b = b()print(type(b) == a) # falseprint(isinstance(b, a)) # true
b是a的子类, type(b)返回的是类b, 不等于a, 但b是a的子类,因此,我们可以认为b也是a的对象,面对这种存在继承关系的情况,应当使用isinstance
推荐学习:python视频教程
以上就是isinstance在python中是什么意思的详细内容。
其它类似信息

推荐信息