python中 s nstance函数的用法
更新时间:2023-12-26Python中isinstance()函数的作用
在Python中,isinstance()是一个非常有用的函数,用于判断是否一个对象是一个已知类型的实例。它返回一个布尔值,即True或False。
isinstance()函数的使用方法
通用的isinstance()函数使用方式如下:
isinstance(object, classinfo)
其中,object是需要检查类型的对象,classinfo是一个类类型、类型元组或者类型信息。如果object是classinfo的一个实例,isinstance()函数将返回True。否则,它将会返回False。
isinstance()函数的示例
下面通过一个示例来展示isinstance()函数的用法。
class Vehicle: pass class Car(Vehicle): pass car_instance = Car() print(isinstance(car_instance, Car)) # 输出 True print(isinstance(car_instance, Vehicle)) # 输出 True print(isinstance(car_instance, object)) # 输出 True print(isinstance("hello", str)) # 输出 True print(isinstance(10, int)) # 输出 True
代码中,在第一段中,我们定义了两个类Vehicle和Car,Car是Vehicle的子类。之后我们创建了类Car的一个实例car_instance。
在第二段中,我们使用isinstance()函数检查car_instance是不是Car类的一个实例,它会返回True。我们还使用isinstance()函数检查car_instance是否是Vehicle类的实例,它也会返回True。最后我们还检查car_instance是否是Python内置的object类的实例,是的话也会返回True。此外我们还展示了使用isinstance()检查字符串"hello" 是否是str类的实例,和检查数字10是否是int类的实例。这些都是一样的。
isinstance()函数的注意事项
需要注意的是,当classinfo是一个类型元组时,如果object是其中的一个类型的实例,isinstance()也会返回True。
示例如下:
class Vehicle: pass class Car(Vehicle): pass class Bus(Vehicle): pass car_instance = Car() bus_instance = Bus() print(isinstance(car_instance, (Car, Bus))) # 输出 True print(isinstance(bus_instance, (Car, Bus))) # 输出 True print(isinstance(car_instance, (str, int, list))) # 输出 False
这里我们定义了三个类,其中Car和Bus都是Vehicle的子类。在第二段中,我们创建了两个实例car_instance和bus_instance。我们使用isinstance()函数来检查car_instance和bus_instance是不是属于Car和Bus中至少其一的实例。这里返回的都是True。在第三段中,我们想检查car_instance与str, int, list中的任意一个对象是否匹配,我们不可能得到一个匹配结果,因此isinstance()函数返回了False。