Python中的isinstance函数:检查一个对象是否是指定的类型。
Python是一种强类型语言。这意味着每个变量都必须先赋予一个类型,而且只能存储与该类型匹配的值。但是,在某些情况下,需要在程序运行时检查对象的类型。Python提供了实现这一功能的内置函数之一就是isinstance()函数。
isinstance()函数
isinstance()函数用于检查一个对象是否是指定的类型。它的语法格式如下:
isinstance(object, classinfo)
其中,object表示要检查的对象,而classinfo表示指定的类型或类型元组。该函数返回布尔值True或False。
示例:
#定义一个类
class MyClass:
pass
obj_i = 100
obj_f = 10.0
obj_l = [1, 2, 3]
obj_t = ("apple", "banana", "cherry")
obj_d = {"name": "Tom", "age": 25}
obj_c = MyClass()
print(isinstance(obj_i, int)) #True
print(isinstance(obj_f, float)) #True
print(isinstance(obj_l, list)) #True
print(isinstance(obj_t, tuple)) #True
print(isinstance(obj_d, dict)) #True
print(isinstance(obj_c, MyClass)) #True
print(isinstance(obj_i, float)) #False
print(isinstance(obj_l, tuple)) #False
print(isinstance(obj_c, dict)) #False
在上面的示例中,我们定义了一个名为MyClass的类,并创建了几个不同类型的对象,包括整型、浮点型、列表、元组、字典和自定义类。然后,我们使用isinstance()函数来检查它们是否属于某些类型。例如,isinstance(obj_i, int)表明obj_i是一个整型,因此返回True。同样,isinstance(obj_l, tuple)表明obj_l不是一个元组,因此返回False。
如果希望检查一个对象是否属于多个类型中的至少一个,可以将多个类型名称放在一个元组中作为参数传递。例如,
my_list = [1, 2, 3]
my_tuple = (4, 5, 6)
print(isinstance(my_list, (list, tuple))) #True
print(isinstance(my_tuple, (list, tuple))) #True
规定:isinstance()函数与type()函数的区别
需要注意的是,isinstance()函数与type()函数是不同的。type()函数是用于获取一个对象的类型的内置函数。
示例:
my_str = "Hello, World!"
my_int = 100
print(type(my_str)) #<class 'str'>
print(type(my_int)) #<class 'int'>
因此,isinstance()函数用于判断一个对象是否属于指定的类型或类型元组,而type()函数用于返回一个对象的类型。
