除了用户自定义的函数,调用操作符()也可以被用在其它对象上。python中有7种形式的可调用对象:
用户自定义函数
由def语句或者lambda表达式创建。
内置函数
由c(cpython)实现,如len,time.strftime。
内置方法
由c实现的方法,如dict.get。
方法(method)
定义在类中的函数。
类
一个类通过__new__方法来创建一个实例,并通过__init__方法初始化之,并最终把实例返回给调用者。由于python中没有new操作符,所以通过对一个类进行调用来创建这个类的实例。当然,你也可以重载__new__方法来做一些别的事情。
类实例
如果一个类的中定义了__call__方法,那么这个类的实例就可以像函数一样被调用。
generator函数
使用了yield关键字的函数或者方法,在被调用时,返回一个generator对象。
为了判断一个对象是否是可调用的,可以使用callable()内置函数: