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
。 - 可以用于检查继承关系、基本类型等多种情况,非常灵活。