Python 3学习笔记 上卷

“会”Python的人很多,符合Pythonic风格的代码却不多。

本书的独到之处在于——利用dis模块对字节码进行“反汇编”。2~9章,可看作是《Python学习手册》的精华版;11章,能够学会用unittest模块进行单元测试。

unittest模块进行单元测试,需要编写太多的样板代码,推荐使用pytest。不管换用哪个工具,测试都离不开:装载测试夹具、模拟外部资源、组织与维护用例、生成结果报告。

文摘

人们常说Python简单易学,但这是以封装和隐藏复杂体系为代价的。

通常将进程内存分作堆(heap)和栈(stack)两类:堆可自由申请,通过指针存储自由数据;而栈则用于指令执行,与线程相绑定。函数调用和执行都依赖线程栈存储上下文和执行状态。系统栈用于机器执行,用户栈存储用户代码执行状态。

/assets/bookshelf/Python%203学习笔记%20上卷/frame.jpg

因为函数默认实现了描述符协议,所以当以实例或类型访问方法时,类型或实例将作为参数被传入__get__,从而截获绑定目标(__self__)。

/assets/bookshelf/Python%203学习笔记%20上卷/unittest.jpg
  • TestCase:测试用例(实现一到多个测试方法)

  • TestSuite:测试套件(组合多个用例或套件)

  • TestLoader:加载器(查找测试方法)

  • TestRunner:执行器(执行测试,返回测试结果)

  • TestResult:测试结果