`isinstance()` 是 Python 中的一个内置函数,用于检查一个对象是否是某个类型或者是该类型的子类的实例。其基本语法如下:
isinstance(object, classinfo)
`object` 是要检查类型的对象。
`classinfo` 可以是类型对象(如 `int`, `str`, `list` 等),也可以是类型对象的元组。
如果 `object` 是 `classinfo` 指定的类型(或其子类),则返回 `True`,否则返回 `False`。
示例用法:
检查整数类型
print(isinstance(5, int)) 输出:True
检查字符串类型
print(isinstance("hello", str)) 输出:True
检查列表类型
print(isinstance([1, 2, 3], list)) 输出:True
检查元组类型
print(isinstance((1, 2, 3), tuple)) 输出:True
检查字典类型
print(isinstance({"a": 1, "b": 2}, dict)) 输出:True
检查继承关系
class Animal: pass
class Dog(Animal): pass
class Cat(Animal): pass
dog = Dog()
cat = Cat()
print(isinstance(dog, Dog)) 输出:True
print(isinstance(dog, Animal)) 输出:True
print(isinstance(dog, Cat)) 输出:False
print(isinstance(cat, Cat)) 输出:True
print(isinstance(cat, Animal)) 输出:True
print(isinstance(cat, Dog)) 输出:False
进阶用法:
`isinstance()` 也可以用于检查对象是否是某个类的实例,或者是该类的子类的实例。
可以使用元组来检查对象是否是指定类或其任意子类的实例。
检测可迭代对象:
from collections import Iterable, Iterator
vars = ""
res = iter(vars)
检查是否是字符串
r1 = isinstance(vars, str) 输出:True
检查是否是可迭代对象
r2 = isinstance(vars, Iterable) 输出:True
检查是否是迭代器
r3 = isinstance(res, Iterator) 输出:True
`isinstance()` 函数是 Python 中进行类型检查的常用方法,它简化了类型相关的操作,并支持继承关系检查