python回调函数

打印 上一主题 下一主题

主题 896|帖子 896|积分 2688

回调函数在各种编程函数中都是比较常见的,回调函数的出现主要是为了降低函数之间调用的耦合性,从而实现解耦。
简单来说,如果一个函数可以作为被传递就称这个函数为回调函数。
比如:func1(func2()),那么func2就是回调函数。此时,只需要知道func2这个函数的功能是什么,在执行func1时调用func2就可以,无须关心func2的实现过程是什么。
  1. def func1(func2):
  2.     func2()
  3. def func2():
  4.     print('我是func2函数')
  5. func1(func2)
复制代码
如此,像上面这样执行就可以完成一个简单的回调函数的使用。
通过这样的使用还可以实现一些稍微复杂的回调。
  1. def func(func3,func4):
  2.     print(func3() + func4())
  3. def func3():
  4.     return 5
  5. def func4():
  6.     return 3
  7. func(func3,func4)
复制代码
除了上面的使用实例以外,回调函数还可以使用带参数的传递形式。
  1. def ser1(a):
  2.     return a * 100
  3. def ser2(b):
  4.     return b * 20
  5. def ser(ser1,a,ser2,b):
  6.     print(ser1(a) + ser2(b))
  7. ser(ser1,1,ser2,1)
复制代码
在执行调用ser(ser1,a,ser2,b)时,其中a对应的是ser1回调函数的参数。b对应的是ser2回调函数的参数,这样就实现携带参数的回调函数被调用的情况。
还有一种携带多个参数的使用情况,写法也很nice。
  1. def exec(fn,args,callback):
  2.     result = fn(*args)
  3.     callback(result)
  4. def add(a,b):
  5.     return a + b
  6. def show(result):
  7.     print("结果是:",result)
  8. #学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
  9. exec(add,(10,4),show)
复制代码
执行exec(add,(10,4),show)时,add作为第一个回调函数被执行。然后,将add函数的返回结果作为第二个回调函数的参数调用show回调函数。
最后用更专业的术语来理解一下,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表