Python 内置函数:isinstance()

B站影视 港台电影 2025-09-01 07:01 1

摘要:内置函数 isinstance 用于检查一个对象是否是某个类或其子类的实例。它支持类型继承判断,并且可以一次性检测多个类型,是类型检查与条件分支中常用的工具。

内置函数 isinstance 用于检查一个对象是否是某个类或其子类的实例。它支持类型继承判断,并且可以一次性检测多个类型,是类型检查与条件分支中常用的工具。

一、函数语法

isinstance(object, classinfo)

参数:

object:要检测的对象。

classinfo:单个类、类型,或由多个类/类型组成的元组。

返回值:

返回 True,表示 object 是 classinfo 或其子类的实例。

返回 False,表示不符合上述条件。

二、基础用法示例

1、检测单一类型

print(isinstance(10, int)) # Trueprint(isinstance("Hello", str)) # Trueprint(isinstance([1, 2], list)) # Trueprint(isinstance(3.14, int)) # False

2、检测多个类型

print(isinstance(3.14, (int, float))) # Trueprint(isinstance("Hi", (int, float))) # False

3、继承关系检测

class Animal: passclass Dog(Animal): passd = Dogprint(isinstance(d, Dog)) # Trueprint(isinstance(d, Animal)) # True # 继承关系成立

三、进阶技巧

1、动态类型检查

def process(value):if isinstance(value, (int, float)):return value * 2raise TypeError("仅支持数字类型")print(process(10)) # 20

2、配合抽象基类(ABC)

from collections.abc import Iterableprint(isinstance([1, 2, 3], Iterable)) # Trueprint(isinstance(123, Iterable)) # False

3、自定义类型判断

class MyClass: passobj = MyClassprint(isinstance(obj, MyClass)) # True

四、补充说明

1、classinfo 必须是类、类型或类型元组,不能是其他对象。

2、检测内置类型时,可以直接传入内置类型(如 int、str、list)。

3、如果需要判断类本身的继承关系,请使用 issubclass 而不是 isinstance。

4、与 的区别:isinstance 考虑继承关系;type 严格匹配对象的确切类型,不考虑继承。

“点赞有美意,赞赏是鼓励”

来源:语蓉教育

相关推荐