常用函数

isinstance

判断一个对象是否是一个已知的类型,类似 type()

isinstance() 与 type() 区别:

  • type() 不会认为子类是一种父类类型,不考虑继承关系。
  • isinstance() 会认为子类是一种父类类型,考虑继承关系。

例如

class A:
    pass

class B:
    pass

isinstance(A(), A)    # reutrn True
type(A()) == A        # return True
isinstance(B(), A)    # return True
type(B()) == A        # return False

Iterable

判断一个对象是否可迭代

例如

>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False

enumerate

把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身

例如

>>> for i, value in enumerate(['a', 'b', 'c']):
...     print(i, value)
...
(0, 'a')
(1, 'b')
(2, 'c')