zoukankan      html  css  js  c++  java
  • Python 回调函数

    什么是回调函数?

      回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数;

      这是官方的解释,理解上有点费解,我自己的理解一个函数要求先传给它一个函数,然后在特定的场景下调用达到完成目标任务。这个被传入后又被调用的函数就称为回调函数。

    我们来实现下回调函数,这样更容易理解下这个回调函数

    def hello(item):
        """定义问候操作"""
        return "Hello,%s" % item
    
    
    def attack(item):
        """定义攻击操作"""
        return "Attack,%s" % item
    
    
    def like(item):
        """定义喜欢的操作"""
        return "Like,%s" % item
    
    
    def func(item, callback):
        """这里需要传入一个callback,这个callback其实就是回调函数"""
        return callback(item)

    这里我们定义三种操作,喜欢、攻击、问候,我们可以根据不同的参数来进行调用这三种方法

        item = "World"
        if item == "World":
            func(item, callback=hello)
        elif item == "Gril":
            func(item, callback=like)
        else:
            func(item, callback=attack)

    这里我们可以根据我们输入的item不同来进行调用对应的方法,输入World 调用hello ,Gril调用 like,其他的值一律调用attack;

    通过上面的例子是不是更容易理解些了。

      之前也没有细细的研究过,面试的时候被问到由于token 过期导致case的执行结果返回的httpcode 401,遇到这样的场景怎么处理,我的反应如果请求的时候需要使用到token认证我这边肯定是首先需要在调用之前生成token,在请求的时候直接取用这个token,避免这样的token过期导致的错误,但是面试官说这里使用回调函数,发现特定的错误的时候通过回调函数重新获取token。

  • 相关阅读:
    [洛谷P2742]【模板】二维凸包([USACO5.1]圈奶牛Fencing the Cows)
    [洛谷P4781]【模板】拉格朗日插值
    [洛谷P4550]收集邮票
    [洛谷P4900]食堂
    [洛谷P2057][SHOI2007]善意的投票
    [CF1083C]Max Mex
    bzoj3110: [Zjoi2013]K大数查询 【树套树,标记永久化】
    bzoj 1207: [HNOI2004]打鼹鼠 (dp)
    bzoj 1037: [ZJOI2008]生日聚会Party (dp)
    bzoj 2140: 稳定婚姻 (二分图)
  • 原文地址:https://www.cnblogs.com/mengyu/p/9407489.html
Copyright © 2011-2022 走看看