Python 内置函数

Python isinstance() 函数用于判断对象是不是某类型(或其子类型)。比 type() 更推荐用于类型判断。

语法

isinstance(obj, type)
isinstance(obj, (type1, type2, ...))

参数

obj:要判断的对象。第二个参数 classinfo:类型,或类型组成的元组。

返回值

返回布尔值 bool:obj 是 classinfo(或其子类)的实例为 True,支持元组匹配任一类型。

示例

print(isinstance(10, int))            # True
print(isinstance("hi", str))          # True
print(isinstance(3.14, (int, float))) # True,属于元组里任一类型
print(isinstance([], list))           # True
print(isinstance("hi", int))          # False

def describe(x):
    if isinstance(x, int):
        return "整数"
    elif isinstance(x, str):
        return "字符串"
    return "其他"

print(describe(5), describe("a"), describe(1.5))

输出:

True
True
True
True
False
整数 字符串 其他

注意事项

isinstance 支持继承(子类实例对父类返回 True);type() 是精确匹配。判断类型优先用 isinstance。