欢迎访问宙启技术站
智能推送

Python中的isinstance函数:检查一个对象是否是指定的类型。

发布时间:2023-06-13 19:24:23

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()函数用于返回一个对象的类型。