isinstance Python · 内置函数
`isinstance` 检查一个对象是否属于某个类型(或该类型的子类),返回布尔值(真或假)。就像测谎仪,检查一个人是不是说谎了,如果是就返回真,否则假。
怎么用
isinstance(对象, 类型) isinstance(对象, (类型1, 类型2, ...)) # 可以是多个类型
小例子
print(isinstance(42, int))
print(isinstance("你好", str))
print(isinstance(3.14, (int, float))) # 是其中之一即为真
print(isinstance(42, str))
运行结果
True True True False
对比:用 type 判断类型
print(type(42) == int) # True `type` 不考虑继承,而 `isinstance` 会考虑子类。比如你有一个自定义类继承自 `int`,`isinstance` 会返回 True,而 `type` 不会。
常见使用场景
1. 在函数中检查参数类型:
def 加法(a, b):
if not isinstance(a, (int, float)) or not isinstance(b, (int, float)):
raise TypeError("参数必须是数字")
return a + b
2. 判断对象是否是某个类的实例:
class 动物: pass
class 狗(动物): pass
d = 狗()
print(isinstance(d, 动物)) # True,子类实例也是父类类型
3. 避免错误的类型操作。
提醒:- `isinstance` 更推荐用于类型检查,因为它支持继承。 - 第二个参数可以是类型元组,表示多个类型之一即可。 - 如果对象是 `None`,返回 `False`。
官方文档:https://docs.python.org/zh-cn/3/library/functions.html#isinstance
在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Python全部词条