Python中事件驱动
提示:如果要回顾视频,直接从第8分钟开始看
事件驱动可以说是一个概念,还是用一个官方的语言来讲解一下吧
事件驱动专业的解释是指在持续事务管理中,进行决策的一种策略,当事件被触发时计算机调动可用资源,执行相关任务,这样使得不断出现任务得以执行,防止实务的堆积。这种策略相比起非事件驱动的程序来说,让计算机 CPU 资源更优的利用起来,通过对事务的有效管理让计算机得到最好的性能。
现在的编程基本都是基于事件驱动的,例如服务器端的 IO 处理、网络请求;特别是在 UI 的编程中,鼠标的点击事件、屏幕的触摸事件、键盘的事件等等。
因为是一个概念,本人能力道不清,说不明。所以用以下几种方式来解释一下什么是事件驱动,看的多了,就可以意会了。
例子1:
以下笔记中:Day9 - 异步IO数据库队列缓存 2.3章节
例子2:
在回到课堂上看看老师的另一种方式的讲解。(感觉有点跑题,不知道是不是自己理解不透的问题)
首先python跟其他语言相比,没有事件和委托,python是没有的。在其他语言中,这两者是什么呢?简单来说就是函数列表或者类的列表
Python里面没有事件?那事件能不能自己创造呢?
其他语言事件是怎么做的?比如C++语言的。是怎么驱动的?
当请求到web框架之后,就会执行24个事件,经历过24个事件之后,就会把请求返回给客户端了。
如果想在请求的过程中,自定义一些事件,比如黑名单等,那么就得在24个事件后注册一个自定义事件,事件是什么?就是刚才说的,一个类或者一个函数。
这里举一个例子
假设下面这个框架有10万行代码,使用pip安装的,不知道里面是什么东西。
如果想使用这个框架,就需要按照框架开发者的约定,做以下几个事情。
- 自己写个类,集成Baseler
- 必须在类里面写execute方法
- 把类注册到event_list.
- Run方法
简单来说假设自己下载了一个web框架,自己要做的,就是把自己想要执行的函数按照框架约定放进去,那么就可以使用web框架了。
这里的例子就用课堂一个代码演示一下。
见以下链接中的4.1章节,就是一个使用框架,然后我们自己自定义事件的例子。