学习范围:
- Python基础
- 函数
- 高级特性
- 函数性编程
- 模块
- 面向对象编程
- 错误,调试和测试
- IO编程
笔记:
- Python的整数没有大小限制
- Python 3的字符串使用Unicode,直接支持多语言。
- Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。
- 要理解generator的工作原理,它是在for循环的过程中不断计算出下一个元素,并在适当的条件结束for循环。对于函数改成的generator来说,遇到return语句或者执行到函数体最后一行语句,就是结束generator的指令,for循环随之结束。
- 编写高阶函数,就是让函数的参数能够接收别的函数。
- Python除了能支持OOP的decorator外,直接从语法层次支持decorator。Python的decorator可以用函数实现,也可以用类实现。
- 模块是一组Python代码的集合,可以使用其他模块,也可以被其他模块使用。
- Python语言特定的序列化模块是pickle,但如果要把序列化搞得更通用、更符合Web标准,就可以使用json模块。
学习范围:
- 进程和线程
- 常用内建模块
- 常用第三方模块
- 图形界面
- 网络界面
- 网络编程
- 电子邮件
- 访问数据库
- Web开发
- 异步IO
- 实战
笔记:
- Python解释器由于设计时有GIL全局锁,导致了多线程无法利用多核。多线程的并发在Python中就是一个美丽的梦。Python的分布式进程接口简单,封装良好,适合需要把繁重任务分布到多台机器的环境下。
- Python之所以自称“batteries included”,就是因为内置了许多非常有用的模块,无需额外安装和配置,即可直接使用。
- 用TCP协议进行Socket编程在Python中十分简单,对于客户端,要主动连接服务器的IP和指定端口,对于服务器,要首先监听指定端口,然后,对每一个新的连接,创建一个线程或进程来处理。通常,服务器程序会无限运行下去。
- MySQL的SQL占位符是%s。
- asyncio提供了完善的异步IO支持;异步操作需要在coroutine中通过yield from完成;多个coroutine可以封装成一组Task然后并发执行。
- 和静态语言不同,Python允许对实例变量绑定任何数据,也就是说,对于两个实例变量,虽然它们都是同一个类的不同实例,但拥有的变量名称都可能不同。