isinstance() 是 Python 内置函数,用于检查对象是否是给定类或其子类的实例。isinstance() 的语法为:
isinstance(object, classinfo)
其中,object 是你要检查的对象, classinfo 可以是:
- 一个类
- 一个类元组(用于检查对象是否是元组中任何类或子类的实例)
示例
# 检查对象是否是类的实例
class MyClass:
pass
obj = MyClass()
print(isinstance(obj, MyClass)) # True
print(isinstance(obj, str)) # False
# 检查对象是否是任何指定类的实例
class MySubClass(MyClass):
pass
print(isinstance(obj, (MyClass, MySubClass))) # True
print(isinstance(obj, (int, str))) # False
# 检查变量是否是特定类型
x = 5
if isinstance(x, int):
print("x 是一个整数")
else:
print("x 不是一个整数")
在第一个示例中,创建了 MyClass 类的实例,并使用 isinstance() 来检查它是否是 MyClass 的实例。该函数返回 True,与预期相符。
在第二个示例中,isinstance() 用于检查对象是否是任何指定类的实例,包括 MyClass 和子类 MySubClass。由于 obj 是 MyClass 的实例,因此函数返回 True。
在第三个示例中,isinstance() 用于检查对象是否是内置类型(如 int 或 str)的实例。在两种情况下,函数都返回 True。
最后,在第四个示例中,isinstance() 用于检查变量 x 是否是 int 类型。如果 x 是整数,程序将打印 "x 是一个整数",否则打印 "x 不是一个整数"。