可调用对象


除了用户定义的函数,调用运算符(即())还可以应用到其它对象上。如果想判断对象能否调用,可以使用内置的callable()函数。Python数据模型文档列出7种可调用对象。

1、用户定义的函数

  使用def语句或者lambda表达式创建。

2、内置函数

  使用C语言(CPython)实现的函数,如len或time.strftime。

3、内置方法

  使用C语言实现的方法,如dict.get。

4、方法

  在类的定义体中定义的方法。

5、类

  调用类会运行类的__new__方法创建一个实例,然后运行__init__方法,初始化实例,最后把这个实例返回给调用方。因为Python没有new运算符,所以调用类相当于调用函数。

6、类的实例

  如果类定义了__call__方法,那么它的实例可以作为函数调用。

7、生成器函数

  使用yield关键字的函数或方法。调用生成器函数返回的是生成器对象。