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
函数非常实用,可以更好地避免类型错误造成的异常情况。