isinstance Python用法

isinstance 是 Python 中用于判断一个对象是否属于一个指定的类或类型的函数。它的使用方法非常简单,通过该函数可以方便地进行类型判断,避免出现类型错误的情况。
语法格式
isinstance(object, classinfo)
其中,object 是要判断的对象,classinfo 可以是一个类或一个类型的元组。如果 object 是 classinfo 的实例,则返回 True,否则返回 False。
下面我们通过一些示例来具体演示 isinstance 的用法。
示例一:判断整数是否属于指定类型
num = 10
print(isinstance(num, int)) # True
print(isinstance(num, str)) # False
运行结果:
True
False
在这个示例中,我们定义了一个整数 num,然后使用 isinstance 函数分别判断该整数是否属于 int 类型和 str 类型。可以看到,num 是 int 类型,所以第一个 print 函数返回 True,而不是 str 类型,因此第二个 print 函数返回 False。
示例二:判断对象是否为多个类型之一
有时候我们需要判断对象是否为多个类型之一,可以通过传入一个元组来实现:
text = "geek-docs.com"
print(isinstance(text, (str, int))) # True
print(isinstance(text, (list, dict))) # False
运行结果:
True
False
在这个示例中,我们定义了一个字符串 text,然后通过 isinstance 函数分别判断该字符串是否属于 str 或 int 类型以及 list 或 dict 类型。由于 text 是 str 类型,所以第一个 print 函数返回 True,而不是 list 或 dict 类型,因此第二个 print 函数返回 False。
示例三:判断对象是否为自定义类的实例
除了内置类型外,我们也可以使用 isinstance 函数来判断对象是否为自定义类的实例:
class MyClass:
def __init__(self, name):
self.name = name
obj = MyClass("geek-docs.com")
print(isinstance(obj, MyClass)) # True
print(isinstance(obj, str)) # False
运行结果:
True
False
在这个示例中,我们定义了一个名为 MyClass 的自定义类,并创建了一个名为 obj 的实例。然后使用 isinstance 函数分别判断该实例是否属于 MyClass 类型和 str 类型。可以看到,obj 是 MyClass 类型的实例,因此第一个 print 函数返回 True,而不是 str 类型,因此第二个 print 函数返回 False。
结论
通过上述示例,我们可以看到 isinstance 函数的用法非常简单,通过传入要判断的对象和类或类型,即可判断该对象是否属于指定的类或类型。在编程过程中,尤其在进行类型检查时,isinstance 函数非常实用,可以更好地避免类型错误造成的异常情况。
极客教程