Python isinstance()

时间:2020-02-23 14:42:50  来源:igfitidea点击:

Python的isinstance()函数用于检查对象是否为指定类的实例。

Python isinstance()

Python的isinstance()函数语法为:

isinstance(object, classinfo)

如果对象是classinfo参数的实例或者classinfo子类的实例,则此函数返回True。

如果对象不是classinfo或者其子类的实例,则该函数返回False。

classinfo参数可以是类型的元组。
在这种情况下,如果对象是任何类型的实例,则isinstance()将返回True。

如果classinfo不是类型或者类型的元组,则会引发" TypeError"异常。

Python isinstance()示例

让我们看一下具有内置数据类型的isinstance()函数的一些简单示例,例如字符串,元组,列表,字典,字节等。

Python isinstance() 数字

i = 10
print('i is int:', isinstance(i, int))

f = 10.5
print('f is float:', isinstance(f, float))

输出:

i is int: True
f is float: True

Python isinstance()字符串

s = 'a'
print('s is str:', isinstance(s, str))

输出:

s is str: True

Python isinstance()字节

b = bytes('abc', 'utf-8')
print('b is bytes:', isinstance(b, bytes))

输出:

b is bytes: True

Python isinstance()元组

t = (1, 2)
print('t is tuple:', isinstance(t, tuple))

输出:

t is tuple: True

Python isinstance()列表

li = []
print('li is list:', isinstance(li, list))

输出:

li is list: True

Python isinstance()字典

d = {}
print('d is dict:', isinstance(d, dict))

输出:

d is dict: True

Python isinstance()类和继承

让我们看一个具有自定义类和多个类继承的isinstance()函数的示例。

class Person:
  name = ''

class Employee(Person):
  id = 0

p = Person()
e = Employee()

print('p isinstance of Person:', isinstance(p, Person))
print('p isinstance of Employee:', isinstance(p, Employee))

print('e isinstance of Person:', isinstance(e, Person))
print('e isinstance of Employee:', isinstance(e, Employee))

输出:

p isinstance of Person: True
p isinstance of Employee: False
e isinstance of Person: True
e isinstance of Employee: True

Python isinstance()类的元组

print('p is an instance of Person or Employee:', isinstance(p, (Person, Employee)))
print('e is an instance of Person or Employee:', isinstance(e, (Person, Employee)))

输出:

p is an instance of Person or Employee: True
e is an instance of Person or Employee: True