从句法上看,协程与生成器类似,都是定义体中包含 yield 关键字的函数.可是,在协程中,yield 通常出现在表达式的右边(例如,datum = yield),可以产出值,也可以不产出——如果 yield 关键字后面没有表达式,那么生成器产出 None.协程可能会从调用方接收数据,不过调用方把数据提供给协程使用的是 .send(datum) 方法,而不是next(...) 函数.通常,调用方会把值推送给协程.yield 关键字甚至还可以不接收或传出数据.不管数据如何流动,yield 都是一种流…
在这一章中,将使用asyncio写一个TCP服务器.这个服务器的作用是通过规范名称查找Unicode字符,来看下代码: import asyncio from charfinder import UnicodeNameIndex CRLF=b'\r\n' PROMPT=b'?>' index=UnicodeNameIndex() @asyncio.coroutine def handle_queries(reader,writer): while True: writer.write(PROMP…
首先是线程与协程的对比.在文中作者通过一个实例分别采用线程实现和asynchio包实现来比较两者的差别.在多线程的样例中,会用到join的方法,下面来介绍下join方法的使用. 知识点一:当一个进程启动之后,会默认产生一个主线程,因为线程是程序执行流的最小单元,当设置多线程时,主线程会创建多个子线程,在python中,默认情况下(其实就是setDaemon(False)),主线程执行完自己的任务以后,就退出了,此时子线程会继续执行自己的任务,直到自己的任务结束,例子如下:. def run():…
__getitem__实现可迭代对象.要将一个对象变成一个可迭代的对象,通常都要实现__iter__.但是如果没有__iter__的话,实现了__getitem__也可以实现迭代.我们还是用第一章扑克牌的例子来看下 class FrenchDeck:     ranks=[str(n) for n in range(2,11)] + list('JQKA')     suits='spades diamonds clubs hearts'.split()     def __init__(sel…
第十七章:并发处理 本章主要讨论Python3引入的concurrent.futures模块.在python2.7中需要用pip install futures来安装.concurrent.futures 是python3新增加的一个库,用于并发处理,提供了多线程和多进程的并发功能 类似于其他语言里的线程池(也有一个进程池),他属于上层的封装,对于用户来说,不用在考虑那么多东西了. 使用方法: 1 Executor:两个子类ThreadPoolExecutor和ProcessPoolExecut…
本章讨论python3.2引入的concurrent.futures模块.future是中文名叫期物.期物是一种对象,表示异步执行的操作 在很多任务中,特别是处理网络I/O.需要使用并发,因为网络有很高的延迟.所以为了不浪费CPU周期去等待,最好在收到网络响应之前做些其他的事. 首先来看下并发和非并发的两个脚本,来对比下各自的运行效率.在这个程序中,我们通过脚本去网站下载各个国家的国旗.网址是http://flupy.org/data/flags/cn/cn.gif 这里http://flupy…
一. mysql安装 1. windows下安装mysql 1.1. 下载源: http://dev.mysql.com/downloads/installer/,请认准对应版本 Windows (x86, 64-bit), ZIP Archive: 不想注册和登录的话可以选择"No thanks, just start my download." 1.2 解压文件: 下载好后解压文件,您可以把内容解压到想要的位置,本例解压到"D:\mysql",还有一个问题新版没…
一.基于jQuery的ajax实现(最底层方法:$.jax()) $.ajax( url: type:''POST“ ) $.get(url,[data],[callback],[type])  #callback是发送成功后就执行的函数,type是告诉服务器需要什么数据,type:text|html|json|script $.post(url,[data],[callback],[type]) 例子: $.get('/jquery_get/',{name:'gavin'}) //name关键…
目录: 一.CSS补充 1.页面布局 二.JavaScript补充 1.条件判断 2.函数分类 3.序列化 4.转义 5.eval 6.时间 7.作用域 三.DOM 1.间接查找 文本操作 样式操作 属性操作 提交表单 其他 事件 内容: 一.CSS补充 1.页面布局: 后台管理布局: 元素补充: min-width: 防止缩放的时候,只写百分比会变形,需要一个最小宽度 border-radius:边框变圆,可以设置为50% 例子:    1.后台管理界面布局(左侧菜单不动) <!DOCTYPE…
打开文件用open函数 open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) Open file and return a stream. Raise IOError upon failure. 重点关注两个参数: file:要打开的文件的路径,可以绝对路径或相对路径 mode:文件打开模式 打开模式 执行操作 ‘r’ 只读(默认模式) 'w'…