python函数和方法使用场景_python 回调函数和回调方法的实现分析

回调与事件驱动

回调函数有比较重要的意义:它在是事件驱动的体现

我们试想一个场景,如果我们触发了某个事件,比如点击事件

那么只要给这个点击事件绑定一个或多个处理事件,也就是回调函数

我们就可以在点击事件被触发后(结束后)调用相应的方法来处理后事

比如

普通回调

1

2

3

4

5

6

7

8

9

#在函数中使用回调

def click(callback):

eval(callback)()#eval()可以讲字符串解析成可以执行的代码

def handle:

print '在点击事件结束后调用该函数,进行处理,比如弹出框alert()'

if(__name__== '__main__'):

fun1('fun2')

上面那个场景很显然是模拟我们日常使用浏览器是的一个场景:

当我们点击某个按钮是,可能会弹出一个警告框或者确认框,这可以理解为

点击事件触发后, 调用了这个处理函数,这个函数的功能就是弹出一个警告框或者确认框

从事件驱动来讲: 点击事件的发送驱动这handle处理程序的触发

恩,这样会不会比较清晰?

类中使用回调

因为python从一开始就是面向对象的定位,所以作为python 程序员, 可能会面对如下的场景:

我们创建一个实例, 我们传入数据给这个实例,最后得到我们我们想要的结果,比如我们传给

一个名为 getCsdnTitle的对象一个url(一篇csdn博客的url),我们希望最后得到这篇文章的文字内容,

我们是不是首先地通过http请求获取该url 对应的html内容,给这个方法命名为fetch_url()

然后我们需要对html进行处理,比如过滤,正则匹配,字符串处理,得到我们想要的文字内容,给这个方法命名为

get_content()

这样这个对象内部就需要经过fetch_url 和 get_content 两个方法来得到最后我们需要的结果,而且两者是有明显的

顺序区别的,我们可以理解为调用完fetch_url 后回调 get_content 方法,大家可能会说,这是不是麻烦了很多,

其实,大家要知道,实际开发中这条执行链是可能会很长的,通过回调,我们就可以指定在某个步骤执行完后我们要进行怎么样的

操作,这样逻辑上和理解上都会很有效率

下面举个小例子演示下在类中实现回调的方法

#在类中使用回调方法

1

2

3

4

5

6

7

8

9

#在函数中使用回调

def click(callback):

eval(callback)()#eval()可以讲字符串解析成可以执行的代码

def handle:

print '在点击事件结束后调用该函数,进行处理,比如弹出框alert()'

if(__name__== '__main__'):

fun1('fun2')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值