美文网首页
用故事说明回调函数

用故事说明回调函数

作者: 一百万个不确定 | 来源:发表于2019-06-26 19:12 被阅读0次

君君城里面的铁匠小詹詹技术非凡,很多人找他去打造剑。一天小猎狗去找小詹詹打造一把剑。

小詹詹问:“小猎狗,有什么具体的要求么?”

小猎狗:“Fuck the 要求,给我打造一把顺手的剑就好了。”

小詹詹说:“好的,我现在就去弄。”

在这里小猎狗给了小詹詹1个参数:顺手。没有别的要求,所以把小詹詹的锻造比作函数的话,小猎狗就是调用了一个带有1个参数的函数。

结果就是小詹詹给了猎狗一把顺手的剑

但是有一天,阿雅去找小詹詹打造匕首:“小詹詹,做个匕首,不然晚上不给你营养快线。”

小詹詹说:“好的,阿雅,有什么具体要求么?”

阿雅顺手给了他一把图鉴,图鉴里面的锻造方法小詹詹从未见过。

小詹詹咽了口气,说“好的!”

在这里阿雅给你图鉴就是一个回调函数,这个回调函数小詹詹提前不知道,利用图鉴和小詹詹的技术才能共同把这个锻造任务完成。

小詹詹完成了这个匕首之后,阿雅用它刺杀了夜王。

下面用代码说明这个过程

class BlackSmith(object):
    def __init__(self, name):
        self.name = name

    def produce_default(self, para):
        result = ''
        if 'nice' in para:
            result += 'nice'
        if '顺手' in para:
            result += '顺手'
        return result + '剑'

    def make_weapon(self, para, method=None):
        if method:
            return method(para)
        else:
            return self.produce_default(para)


def produce_specific_weapon(para):
    return para+'一把可以刺杀夜王的匕首'


class People(object):
    def __init__(self, name, method):
        self.name = name
        self.method = method
        self.weapon = ''


if __name__ == "__main__":
    # 定义一个铁匠
    gendry = BlackSmith('Gendry')

    # 小猎狗去找铁匠打造一把普通的剑
    hound = People('Hound', None)
    hound.weapon = gendry.make_weapon('顺手')
    print('小猎狗的武器是', hound.weapon)

    # 阿雅去找铁匠打造一把特别的武器
    aya = People('Aya', produce_specific_weapon)
    aya.weapon = gendry.make_weapon('阿雅专用', aya.method)
    print('阿雅的武器是', aya.weapon)

代码的输出结果为:

小猎狗的武器是 顺手剑
阿雅的武器是 阿雅专用一把可以刺杀夜王的匕首

相关文章

  • 用故事说明回调函数

    君君城里面的铁匠小詹詹技术非凡,很多人找他去打造剑。一天小猎狗去找小詹詹打造一把剑。 小詹詹问:“小猎狗,有什么具...

  • Java进阶之回调机制

    平时经常听别人讲回调函数,听的我一脸懵逼,到底什么是回调函数,回调函数到底该怎么用?下面举例一一说明。 一、回调机...

  • javscript之回调函数(callback)

    研究一下回调函数,回调函数的英文名:callback ??? 函数也是对象,看一下书面化的说明: 1、函数是用Fu...

  • 函数指针算法库

    函数指针, 函数指针数组声明 通过参数指定回调函数,代码示例 算法库代码说明 argc:参数个数 argv:回调函...

  • Promise解决回调嵌套问题及终极解决方案async 和 aw

    一、Promise 1.异步函数 与 回调函数的说明 回调函数:把一个函数当成参数传递, 将来特定的时机调用, 这...

  • apply和call语句

    运动框架的应用实例 结合 异步和回调函数 中的 「回调函数2」我们可以试图在回调函数中,用this表示oDiv对象...

  • JavaScript函数_08回调函数

    回调函数 回调函数(回调),当我们把某个函数作为参数传递给另一个函数的时候,这个函数就是回调函数 回调函数的基本写...

  • Promise

    回调 把一个函数A传给另一个函数B调用,那么A就是回调函数。 回调地狱 回调套回调套回调套回调套回调套回调套回调....

  • el-form组件的validate方法

    问题:以前用el-form的validate方法,都能够正常进入回调函数,代码下图所示: 但是无法进入回调函数。 ...

  • 回调函数与promise

    回调 把一个函数A传给另一个函数B调用,那么A就是回调函数 具名回调写法 匿名回调写法 多层嵌套的匿名回调(回调地...

网友评论

      本文标题:用故事说明回调函数

      本文链接:https://www.haomeiwen.com/subject/dtyhcctx.html