欢迎访问宙启技术站
智能推送

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()函数来判断一个对象的类型,然后根据不同类型进行不同的操作,提高代码的灵活性和可读性。