函数的引用传递
在Python中,函数本身也是对象,所以可以将函数作为参数传入另一函数并进行调用。
def func_a(func, *args, **kwargs): print(func(*args, **kwargs)) def func_b(*args): return args if __name__ == '__main__': func_a(func_b, 1, 2, 3)
运行结果:
(1, 2, 3)
如果已经提前知道需要调用什么函数,那完全不必要把函数作为参数传入另一个函数并调用,直接调用函数即可。
问:那么把函数名作为参数传递给其他函数,有什么特别的优势吗?
答:可以回调。将函数名作为参数变量可以组成一些数据类型,如果在其他函数中调用,会使调用更加灵活和方便。
回调函数举例:
你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。
在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做 触发回调事件,店员给你打电话叫做 调用回调函数,你到店里去取货叫做 响应回调事件。
问:那为什么不直接调用,而要回调呢?
答:有时候需要内部函数执行一段功能后再回调。例如装饰器。
浙公网安备 33010602011771号