跳到主要内容

Python isinstance() 函数

isinstance() 函数用于检查对象(第一个参数)是否是 classinfo 类(第二个参数)的实例或子类。

示例

numbers = [1, 2, 3, 4, 2, 5]

# 检查 numbers 是否是 list 的实例
result = isinstance(numbers, list)
print(result)

# 输出: True

isinstance() 语法

isinstance() 的语法是:

isinstance(object, classinfo)

isinstance() 参数

isinstance() 接受两个参数:

  • object - 需要检查的对象
  • classinfo - 类、类型或类和类型的元组

isinstance 返回值

isinstance() 返回:

  • 如果对象是类的实例或子类,或者是元组中任何元素的实例或子类,则返回 True
  • 否则返回 False

如果 classinfo 不是类型或类型元组,则会引发 TypeError 异常。

示例 1:isinstance() 如何工作?

class Foo:
a = 5

fooInstance = Foo()

print(isinstance(fooInstance, Foo))
print(isinstance(fooInstance, (list, tuple)))
print(isinstance(fooInstance, (list, tuple, Foo)))

输出

True
False
True

示例 2:isinstance() 在原生类型上的工作

numbers = [1, 2, 3]

result = isinstance(numbers, list)
print(numbers,'是 list 的实例?', result)

result = isinstance(numbers, dict)
print(numbers,'是 dict 的实例?', result)

result = isinstance(numbers, (dict, list))
print(numbers,'是 dict 或 list 的实例?', result)

number = 5

result = isinstance(number, list)
print(number,'是 list 的实例?', result)

result = isinstance(number, int)
print(number,'是 int 的实例?', result)

输出

[1, 2, 3]list 的实例? True
[1, 2, 3]dict 的实例? False
[1, 2, 3]dictlist 的实例? True
5list 的实例? False
5int 的实例? True