什么是回调函数?
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数;
这是官方的解释,理解上有点费解,我自己的理解一个函数要求先传给它一个函数,然后在特定的场景下调用达到完成目标任务。这个被传入后又被调用的函数就称为回调函数。
我们来实现下回调函数,这样更容易理解下这个回调函数
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。