sfy-cnblogs

导航

isinstance () 函数详细用法

Python isinstance () 函数详细用法
一、基础语法
python
运行
isinstance(object, classinfo)
参数说明
object:要检测的任意对象 / 变量
classinfo:要比对的类型,可以是单个类型、多个类型元组、自定义类
返回值
返回布尔值:True / False
二、基础用法:判断单个类型
示例 1:常用基础类型判断
python
运行

整数

print(isinstance(666, int)) # True

浮点数

print(isinstance(3.14, float)) # True

字符串

print(isinstance("你好", str)) # True

布尔值

print(isinstance(False, bool)) # True

列表

print(isinstance([1,2,3], list)) # True

元组

print(isinstance((1,2), tuple)) # True

字典

print(isinstance({"a":1}, dict)) # True

集合

print(isinstance({1,2}, set)) # True
三、进阶用法:一次判断多种类型
传类型元组,满足任意一个就返回 True
python
运行
num = 100

是否是 int 或 float

print(isinstance(num, (int, float))) # True

s = "python"
print(isinstance(s, (int, float))) # False
四、判断自定义类对象
python
运行
class Person:
pass

p = Person()
print(isinstance(p, Person)) # True
五、关键知识点:isinstance 与 type 区别
isinstance:认可继承关系,推荐日常开发用
type:只严格匹配本身类型,不认可继承
python
运行

bool 是 int 的子类

print(isinstance(True, int)) # True 认可继承
print(type(True) == int) # False 严格匹配,不认继承
六、实际开发常用场景
场景 1:函数参数类型校验
python
运行
def calc(x):
if not isinstance(x, (int, float)):
return "参数必须是数字"
return x * 2

print(calc(10))
print(calc("abc"))
场景 2:遍历筛选指定类型数据
python
运行
data = [123, "hello", 3.14, [1,2], "666"]

for item in data:
if isinstance(item, str):
print("字符串:", item)
七、常见坑点
bool 属于 int 子类,isinstance(True, int) 结果为 True
不能用 isinstance 判断空值类型,判断空值用 x is None
多类型必须用元组,不能用列表 [int,float] 会报错

posted on 2026-05-06 06:30  睡佛爷  阅读(10)  评论(0)    收藏  举报