isinstance() 类型检查
最后更新:2026-09-22
isinstance() 类型检查
isinstance(obj, classinfo) 判断 obj 是否为 classinfo 的实例(或其子类实例),classinfo 可为 tuple。
| 分类 | 内置函数 |
|---|---|
| 类型 | 内置函数 |
| Python 版本 | all |
📝 语法
isinstance(object, classinfo)
⚙️ 参数
| object 必选 | 要检查的对象。 |
|---|---|
| classinfo 必选 | 类型或类型元组(满足任一类型即为真)。 |
返回值:返回布尔值:object 是 classinfo(或其任一元素)的实例时为 True。
💥 异常
TypeError— classinfo 不是类型或类型元组时抛出。
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
True
True
False
🏷️ 相关内置函数
💡 相关案例
更多实战案例即将上线,敬请期待。
❓ 常见问题
Qisinstance(x, int) 和 type(x) == int 有什么区别?
Aisinstance 会考虑继承关系(子类实例也返回 True);type(x) == int 要求类型完全相等。通常用 isinstance 更灵活。
Qisinstance(True, int) 返回什么?
A返回 True,因为 bool 是 int 的子类;若想区分布尔与整数,需额外检查 type(x) is bool。
Q第二参数能传多个类型吗?
A能,传元组:isinstance(x, (int, float)) 满足任一即 True;classinfo 不是类型或类型元组时抛 TypeError。
Qisinstance 能检查接口/抽象类型吗?
A能,可检查抽象基类,如 isinstance(x, Iterable)、isinstance(x, collections.abc.Sequence),比检查具体类型更健壮。