zoukankan      html  css  js  c++  java
  • 回调函数的意义以及python实现

     回调函数(callback),百度百科的解释是这样的:

      回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

      可能是学识确实有限,看起来比较懵逼。然后去找了一些通俗易懂的解释--就好像是家政服务,家政公司提供了一个API:打扫房子,而且还能提供各种打扫,比如扫地,擦家具,清洁马桶等等,我们把打扫房子看做库函数,那么打扫屋子的方式呢是你自己决定的,你要怎么打扫就要预约并执行那种回调函数,你预约并执行服务的行为叫做登记回调函数。下面写个看起来很low的实现以便理解

    1 # coding=utf-8
     2 # 请不要在意为毛要清洁这么多次
     3 
     4 
     5 def clean1(times):
     6     """
     7     就假装是扫地吧,这种函数命名方式,千万别学习
     8     :param times: 次数
     9     :return: None
    10     """
    11     print '已完成扫地次数:', str(times)
    12 
    13 
    14 def clean2(times):
    15     """
    16     默默的装作洗抽油烟机
    17     :param times: 次数
    18     :return: None
    19     """
    20     print '已洗抽油烟机次数', str(times)
    21 
    22 
    23 def call_clean(times, function_name):
    24     """
    25     这个很重要,这个就是家政公司的业务系统,要啥业务都得在这说
    26     这个是实现回调函数的核心
    27     :param times:次数
    28     :param function_name:回调函数名
    29     :return:调用的函数结果
    30     """
    31     return function_name(times)
    32 
    33 if __name__ == '__main__':
    34     call_clean(100, clean2)  # 给我洗100次抽油烟机,好吧,很变态

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

  • 相关阅读:
    Oracle 12C 在 Oracle Linux 6.5 64Bit 安装手册
    OWI之db file sequential read
    OWI之db file scattered read
    Linux监控脚本
    Java中的空值判断
    Java中的java.math.BigInteger
    Java中用正则表达式找出数字
    Java中的StringBuffer
    JAVA String.format 方法使用介绍
    Java中对整数格式化
  • 原文地址:https://www.cnblogs.com/wangkun122/p/9019677.html
Copyright © 2011-2022 走看看