在Python中,isinstance()
函数用于检查一个对象是否是一个已知的类型(class type)或该类型的子类。它接受两个参数:第一个参数是需要检查的对象,第二个参数是类型(可以是直接类型或元组中的一个类型)。
isinstance()
函数的限制条件如下:
isinstance()
将检查第一个参数是否为元组中任何一个类型的实例。isinstance()
函数只能用于检查新式类(new-style classes)和经典类(old-style classes)的实例。对于其他类型的对象,可能需要使用其他方法进行类型检查。isinstance()
函数不能用于检查对象是否为内置类型(如int、float、str等)的实例,因为这些类型通常是由C语言实现的,而不是Python类。但是,你可以使用内置的type()
函数来检查对象的类型。示例:
class MyClass:
pass
obj = MyClass()
# 检查obj是否为MyClass的实例
print(isinstance(obj, MyClass)) # 输出True
# 检查obj是否为int或float的实例
print(isinstance(obj, (int, float))) # 输出False
注意:在Python 2中,所有的类都是新式类,但在Python 3中,只有显式地继承自object
的类才是新式类。在Python 3中,所有的内置类型都是新式类。