python事件驱动的小例子
首先我们写一个超级简单的web框架
event_list = []
#这个event_list中会存放所有要执行的类 def run():
for event in event_list:
obj = event()
#实例化这个类
obj.execute()
#执行类的execute方法 class BaseHandler(object):
"""
用户必须要继承该类,从而规范所有类的方法,类似于接口的功能
用户在自己的类中必须要定义这个execute函数,否则会报错
"""
def execute(self):
raise Exception("你必须要重写execute函数")
在这个框架中注册我们自己的类,并且执行
import fram class MyHandler(fram.BaseHandler):
# pass
def execute(self):
print("event_drive execute MyHandler") fram.event_list.append(MyHandler)
fram.run() """
解释一下上面的代码,我们用一个web框架来解释
如果我们想把自己自己的事件注册web框架中
1、必须要自己写一个类,这个类就是要注册web框架中
2、但是这个类必须要继承BaseHandler
3、类中必须要写execute这个方法,如果不写的话就会执行fram中的execute方法
4、然后把类似注册到event_list中
5、然后执行fram的run方法
"""
python事件驱动的小例子的更多相关文章
- Python,while循环小例子--猜拳游戏(三局二胜)
Python,while循环小例子--猜拳游戏(三局二胜) import random all_choice = ['石头', '剪刀', '布'] prompt = '''(0)石头 (1)剪刀 ( ...
- python 字典 get 小例子
语法 get()方法语法: dict.get(key, default=None) 参数 key -- 字典中要查找的键. default -- 如果指定键的值不存在时,返回该默认值值. 返回值 返回 ...
- python,栈的小例子
''' 1.首先确认栈的概念,先进后出 2.初始化的时候如果给了一个数组那么就要将数组进栈 ''' class Stack: def __init__(self,start=[]): self.sta ...
- [Spark][Python]Spark Join 小例子
[training@localhost ~]$ hdfs dfs -cat people.json {"name":"Alice","pcode&qu ...
- 由Python的一个小例子想到的
习题: L = [1,2] L.append(L) Print L 问,结果是什么. 结果是,[1,2,[...]] 这是什么意思呢?就是说[...]表示的对[1,2]的无限循环.这一点是在C#等静态 ...
- python 基础 字典 小例子
统计单词次数 作为字典存储 cotent = "who have an apple apple is free free is money you know" result = { ...
- python 基础 列表 小例子
存主机ip到列表 host_list=[] netip='192.168.1' for hostip in range(1,254): ip = netip +str(hostip) host_lis ...
- Python,for循环小例子--99乘法表
一.99乘法表 for i in range(1, 10): for j in range(1, i + 1): print('%sx%s=%s ' % (j, i, j * i), end='') ...
- [Spark][Hive][Python][SQL]Spark 读取Hive表的小例子
[Spark][Hive][Python][SQL]Spark 读取Hive表的小例子$ cat customers.txt 1 Ali us 2 Bsb ca 3 Carls mx $ hive h ...
随机推荐
- php如何判断IP为有效IP地址
不需要正则表达式来判断,因为在php5.2.0之后,有专门的函数来做这个判断了. 判断是否是合法IP if(filter_var($ip, FILTER_VALIDATE_IP)) { // it's ...
- make menuconfig时出现 #include CURSES_LOC错误
In :: scripts/kconfig/lxdialog/:: fatal error: curses.h: 没有那个文件或目录 #include CURSES_LOC ^ compilation ...
- linux常用命令解析
linux下一些注意事项 1. linux下严格区分大小写 ls 简述:列出文件或目录列表. -> ls 默认列出当前目录下的所有文件. -> ls -l(long)以长格式查看文件. - ...
- Spark分析之Master、Worker以及Application三者之间如何建立连接
Master.preStart(){ webUi.bind() context.system.scheduler.schedule( millis, WORKER_TIMEOUT millis, se ...
- 学习MongoDB 三: MongoDB无法启动的解决方法
一简介 我们之前介绍了MongoDB入门(安装与配置),我们今天在打开MongDB时,我们先运行cmd.exe进入dos命令界面,然后进入cd D:\mongodb\bin目录下,启动服务或者mon ...
- django-template-forloop
forloop.counter0 # 是每次循环的index 红色的div标签,居然可以这样写. ex:第一次循环的结果 <div class="item active" ...
- debian新增加用户 拥有ROOT权限
方案一 : 已经有了 新增加的用户 但是没有ROOT 权限: 首需要切换到root身份$su -(注意有- ,这和su是不同的,在用命令"su"的时候只是切换到root,但没有把 ...
- spring boot 整合 (全)
参考: https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples
- 字典(dictionary) 的基本操作
info = { ’stu1101‘ : ’xiaoming’, ‘stu1102 : xiahong‘, ’stu1103 : ‘xiaozhi', } 1. 字典的获取 info.get('stu ...
- greenlet 实现手动协程切换
from greenlet import greenlet def test1(): print('12') gr2.switch() #切换到gr2 print('34') gr2.switch() ...