廖雪峰老师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教程读后笔记

评论关闭