首页 经验

python中isinstance

时间: 2024-05-06 09:57:55

(部分内容来自网络,其真实性存疑,为了避免对您造成误导,请谨慎甄别。)


isinstance() 是 Python 中用于检查一个对象是否是某个特定类或类型的函数。它的语法如下:

isinstance(object, classinfo)

其中,object 是要检查的对象,classinfo 可以是一个类或者类型,也可以是一个包含类或类型的元组。如果 objectclassinfo 类型的实例,或者是 classinfo 类型的子类的实例,则返回 True;否则返回 False

这个函数在实际编程中非常有用,特别是当你需要在运行时检查某个对象的类型时。下面我们来看一些示例,更好地理解 isinstance() 的用法。

示例 1:

class Animal:
    pass

class Dog(Animal):
    pass

dog = Dog()
print(isinstance(dog, Dog))  # Output: True
print(isinstance(dog, Animal))  # Output: True
print(isinstance(dog, int))  # Output: False

在这个示例中,我们定义了一个 Animal 类和一个 Dog 类,Dog 类是 Animal 类的子类。然后我们创建了一个 Dog 的实例 dog。通过 isinstance() 函数,我们检查了 dog 是否是 Dog 类的实例、是否是 Animal 类的实例以及是否是 int 类型的实例。结果分别为 True、True 和 False。

示例 2:

numbers = [1, 2, 3, 4, 5]
string = "Hello"
print(isinstance(numbers, list))  # Output: True
print(isinstance(string, str))  # Output: True
print(isinstance(string, int))  # Output: False

在这个示例中,我们检查了一个列表 numbers 是否是 list 类型的实例,一个字符串 string 是否是 str 类型的实例,以及一个字符串 string 是否是 int 类型的实例。结果分别为 True、True 和 False。

示例 3:

class A:
    pass

class B(A):
    pass

class C(B):
    pass

obj = C()
print(isinstance(obj, A))  # Output: True
print(isinstance(obj, B))  # Output: True
print(isinstance(obj, C))  # Output: True
在这个示例中,我们定义了三个类 A、B 和 C,它们之间是继承

在这个示例中,我们定义了三个类 A、B 和 C,它们之间是继承关系。然后我们创建了一个 C 类的实例 obj。由于 C 是 B 的子类,B 是 A 的子类,所以 obj 也是 A 和 B 的实例,因此对于这三个检查,结果都为 True。

总的来说,isinstance() 函数是 Python 中用于检查对象类型的重要工具之一。通过它,我们可以方便地在程序中进行类型检查,从而写出更加健壮的代码。

上一个 base64 python 文章列表 下一个 python documentation

最新

工具

© 2019-至今 适观科技

沪ICP备17002269号