《流畅的Python》 读书笔记

《流畅的Python》 读书笔记

Posted by ZW on November 16, 2018

序列

  • 容器序列(list,tuple ,collections.deque)存放任意对象的引用

  • 扁平序列(str,bytes,bytearray,memoryview,array.array)存放值

  • 可变序列 (list,bytearray,memoryview,array.array,collections.deque)

  • 不可变序列(tuple,str,bytes)

  • Python tutor 可以对Python运行原理进行可视化分析

字典,集合

  • 字典推导式
    {key:value for key:value in [(k1,v1),(k2,v2)]}
    
  • colletcions.defaultdict 处理找不到的键

  • colletcions.ChainMap 合并字典

  • colletcions.Counter 计数器

  • colletcions.UserDict 用于继承

函数

  • 函数是一等对象,一等对象:
    • 运行时创建
    • 能赋值给变量或数据结构中的元素
    • 能作为参数
    • 能作为函数的返回结果
  • 绝大多数设计模式能用Python较简单的实现

  • functools.lru_cache 做备忘

面向对象

  • 变量不是盒子,是便签

  • 默认做浅复制

  • 不要使用可变类型作为参数的默认值

  • 对象不会自行销毁,没有引用的对象可能被回收

  • 声明基类最简单的方式是继承abc.ABC

流程控制

  • for/esle while/else try/else