廖雪峰老师Python教程读后笔记,,廖老师网站:http
廖雪峰老师Python教程读后笔记,,廖老师网站:http
廖老师网站:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
花几天时间看了廖老师的python教程,现在总结一下。
(本人用python工作了一年半,有一定python基础,看过《python核心编程》与部分《python源码剖析》,只把自己觉得有用的记一下)
高级特性
切片,对list和tuple而言
生成器yield,协程用到,用于异步
迭代器Iterable(可作用于for),其中,生成器是Iterator对象(可作用于next),但list、dict、str虽然是Iterable,却不是Iterator
函数式编程
高阶函数,一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数(map、reduce、filter、sorted...)
装饰器,在代码运行期间动态增加功能,使用‘@函数名‘
偏函数,可用functools.partial创建
面向对象高级编程
__slots__,限制类实例能添加的属性,也能降低类实例所占内存
@property,神奇的装饰器方法
metaclass元类,可定制类,如果你不懂证明还用不上,type()可创建类
调试与测试
调试,最低级print,其次断言(assert),最好用logging、pdb(pdb.set_trace())或类似方法
测试,单元测试(unittest)和文档测试(doctest)
进程和线程
多进程,os.fork()linux的少用到;multiprocessing,Process创建进程,Pool创建进程池,subprocess创建子进程,Queue、Pipes进程间通信
多线程,threading,用Lock作锁;Python解释器由于设计时有GIL全局锁,导致了多线程无法利用多核
ThreadLocal,解决了参数在一个线程中各个函数之间互相传递的问题
分布式进程,multiprocessing
.managers.BaseManager
web开发
HTML是一种用来定义网页的文本,用于编写网页;HTTP是在网络上传输HTML的协议,用于浏览器和服务器的通信
HTML定义了页面的内容,CSS来控制页面元素的样式,而JavaScript负责页面的交互逻辑
WSGI:Web Server Gateway Interface,接收HTTP请求、解析HTTP请求、发送HTTP响应的接口
web框架,让我们从WSGI处理函数转移到URL+对应的处理函数,把wsgi抽象出来;python常用的web框架有django、tornado、flask
使用模板MVC,提高编程效率
异步IO
Coroutine 协程,效率高、不需要锁机制,python中使用生成器yield实现
asyncio,提供了完善的异步IO支持(async和await,针对coroutine的新语法)
aiohttp,基于asyncio实现的HTTP框架廖雪峰老师Python教程读后笔记
评论关闭