Python中的isinstance()函数的详细用法
发布时间:2023-06-22 04:05:37
isinstance()函数是Python内置的一个函数,用来判断一个对象是否是指定类或其子类的实例。其基本语法为:
isinstance(obj, class_or_tuple)
其中obj为需要判断的对象,class_or_tuple是一个类或元组,表示需要判断的类或类的集合。isinstance()函数在判断obj是否是class_or_tuple指定类的实例时,如果obj是该类的实例或其子类的实例,返回True,否则返回False。
下面通过一些例子来更详细地了解isinstance()函数的用法:
1. 判断一个对象是否是数字类型的实例
a = 10 b = 3.14 c = 1 + 2j print(isinstance(a, int)) # True print(isinstance(b, float)) # True print(isinstance(c, complex)) # True
2. 判断一个对象是否是字符串类型的实例
str1 = 'hello world' str2 = '123' print(isinstance(str1, str)) # True print(isinstance(str2, str)) # True
3. 判断一个对象是否是列表或元组类型的实例
list1 = ['apple', 'banana', 'cherry'] tuple1 = (1, 2, 3) print(isinstance(list1, (list, tuple))) # True print(isinstance(tuple1, (list, tuple))) # True
4. 判断一个对象是否是自定义类的实例
class Person:
pass
class Student(Person):
pass
class Teacher(Person):
pass
p = Person()
s = Student()
t = Teacher()
print(isinstance(p, Person)) # True
print(isinstance(s, Student)) # True
print(isinstance(s, Person)) # True
print(isinstance(t, Teacher)) # True
print(isinstance(t, Person)) # True
5. 判断一个对象是否是None
a = None print(isinstance(a, type(None))) # True
需要注意的是,isinstance()函数只能判断对象是否是指定类或其子类的实例,不能判断对象是否是同一类的实例。例如:
class A:
pass
class B(A):
pass
a = A()
b = B()
print(isinstance(a, A)) # True
print(isinstance(b, A)) # True
print(isinstance(a, B)) # False
print(isinstance(b, B)) # True
总结:isinstance()函数的主要用法是判断一个对象是否是指定类或其子类的实例,其返回值是True或False。在实际编程中,我们可以利用isinstance()函数来判断一个对象的类型,然后根据不同类型进行不同的操作,提高代码的灵活性和可读性。
