Python内置函数isinstance()函数介绍

Python内置函数isinstance()函数介绍

isinstance() 函数是Python内置函数,来判断一个对象是否是一个已知的类型,返回值为布尔值True或False。其语法格式:

isinstance(object, classinfo)

【官方说法https://docs.python.org/zh-cn/3/library/functions.html#isinstance 

如果 object 参数是 classinfo 参数的实例,或其(直接、间接或 virtual )子类的实例,则返回 True。 如果 object 不是给定类型的对象,则总是返回 False。如果 classinfo 是类型对象的元组(或由该类元组递归生成)或多个类型的 union 类型,那么当 object 是其中任一类型的实例时就会返回 True。如果 classinfo 不是某个类型或类型元组,将会触发 TypeError 异常。】

官方说法不好理解,下面解说之。

参数

object -- 实例对象,是要进行类型检查的对象。

classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。

对于基本类型来说 classinfo 可以是:int,float,bool,complex,str(字符串),list,dict(字典),set,tuple。classinfo参数也可以接由多个类型对象组成的元组作为参数,当classinfo参数为多个类型对象时,isinstance()函数会逐一检查每个类型对象,只要object属于其中任意一个类型,就返回True。

>>>a = 2 
>>> isinstance (a,int) 
True 
>>> isinstance (a,str) 
False 
>>> isinstance (a,(str,int,list)) # 是元组中的一个返回 True
True

isinstance()函数也可以用于判断一个对象是否为某个类或其子类的实例。

下面是用于类的情况

# isinstance()函数用于类的示例
class Animal:
    pass

class Dog(Animal):
    pass

class Cat(Animal):
    pass

dog = Dog()
cat = Cat()

print(isinstance(dog, Dog))     # 返回True, dog是Dog类的实例
print(isinstance(cat, Animal))  # 返回True, cat是Animal类的子类Cat的实例

在上面的例子中,isinstance()函数分别对dog和cat对象进行了类型检查,传入的classinfo参数分别为Dog和Animal,即可判断它们是否为这两个类的实例。

下面,再给出一个用于类的例子

class A:
    pass

class B(A):
    pass

class C:
    pass

print(isinstance(A(), A))  # 返回:True
print(isinstance(B(), A))  # 返回:True
print(isinstance(C(), A))  # 返回:False

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习&实践爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值