Python 基础教程

Python 高级教程

Python 相关应用

Python 笔记

Python FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/python-builtin-functions-isinstance.html

python 判断一个对象是否是一个已知的类型的内置函数 isinstance 详解

Python 内置函数 Python 内置函数


isinstance() 是 Python 内置函数之一,用于检查一个对象是否属于指定的类型或类的实例。

函数语法

isinstance(object, classinfo)

参数:

  • object : 要检查的对象。
  • classinfo : 可以是一个类型(type)对象、类名或一个由类型组成的元组。如果 object 是指定类型的一个实例或子类的实例,则返回 True ;否则返回 False

示例代码

下面是一些示例代码,展示了不同情况下如何使用 isinstance()

示例 1:检查对象是否是特定类型的实例

x = 5
result = isinstance(x, int)
print(result)  # 输出: True

示例 2:检查对象是否是多个类型之一的实例

y = 3.14
result = isinstance(y, (int, float))
print(result)  # 输出: True

示例 3:检查对象是否是指定类的实例

class MyClass:
    pass

obj = MyClass()
result = isinstance(obj, MyClass)
print(result)  # 输出: True

示例 4:检查对象是否是某个基本类型的实例

z = "Hello, world!"
result = isinstance(z, (int, float, str))
print(result)  # 输出: True

示例 5:检查对象是否是子类的实例

class Parent:
    pass

class Child(Parent):
    pass

child_obj = Child()
result = isinstance(child_obj, Parent)
print(result)  # 输出: True

示例 6:使用在继承关系中的判断

class A:
    pass

class B(A):
    pass

class C(B):
    pass

c_obj = C()
result1 = isinstance(c_obj, C)
result2 = isinstance(c_obj, B)
result3 = isinstance(c_obj, A)

print(result1)  # 输出: True
print(result2)  # 输出: True
print(result3)  # 输出: True

示例 7:检查对象是否是函数

def my_function():
    pass

result = isinstance(my_function, type(lambda: None))
print(result)  # 输出: True

示例 8:检查对象是否是内置类型

result = isinstance(42, (int, str, list))
print(result)  # 输出: True

总结

  • isinstance() 函数用于检查对象是否是指定类型或类的实例。
  • 第一个参数是要检查的对象,第二个参数可以是一个类型对象、类名或者由类型组成的元组。
  • 如果对象是指定类型的实例或子类的实例,则返回 True,否则返回 False
  • 可以用于检查继承关系、基本类型等多种情况,非常灵活。