Python中的7种可调用对象

Python中有七种可调用对象,可调用对象可使用内置函数callable来检测

 

一、用户自定义的函数:

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

二、内置函数:

  使用C语言实现的函数,如len、sum或者time.strftime

三、内置方法:

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

四、类方法:

  在类的定义体中定义的函数

五、类:

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

六、类的实例:

  如果类定义了__call__方法,那么它的实例可以作为函数进行调用。并且__call__方法可以进行自定义重写。

  

import random


class BingoCage(object):
    def __init__(self,items):
        self._items=list(items)
        random.shuffle(self._items)


    def pick(self):
        try:
            return self._items.pop()
        except IndexError:
            raise LookupError('pick from empty BingoCage')

    def __call__(self):
        return self.pick()

七、生成器函数:

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

posted @ 2019-04-28 16:38  联想蝴蝶  阅读(4692)  评论(0编辑  收藏  举报