Python高级编程笔记

  1. 使用enumerate在循环序列时获得索引。 考虑适时地将for改为list comprehensions

  2. 创建定制的迭代器:编写一个具有next方法的类,只要该类能够提供返回迭代器实例的iter方法。
    a. 如:

    1.png

  3. 典型的生成器模板:


    2.png
  4. 由生成器到协程:


    3.png
  5. 常见的装饰器模式包括:
    a. 参数检查
    b. 缓存
    c. 代理
    d. 上下文提供者

  6. __slots__为指定的类设置一个静态特性列表,并且跳过每个类实例中__dict__列表的创建工作。它们用来为特性很少的类节省空间,因为将不在每个实例中创建__dict__。除此之外,它们有助于设计签名必须被冻结的类,例如,如果必须限制类之上的语言动态特性,定义槽也是有帮助的。

  7. __new__是对于对象状态隐式初始化需求的回应。它使得可以在比__init__更低的层次上定义一个初始化,这个初始化总是会被调用。

  8. __metaclass__方法,元类提供了在类对象通过其工厂方法在内存中创建时进行交互的能力。它们的效果与__new__类似,只不过是在类级别上运行。内建类型type是内建的基本工厂,它用来生成指定名称、基类以及包含其特性的映射的任何类。

  9. 对参数的输入输出的边界值要小心。如果一个对象是在参数中创建的,并且函数返回了该对象,那么该参数引用将仍然存在。如果它被作为默认值使用,可能导致不可预测的结果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,236评论 4 16
  • 这个主题我反复写,因为是想反复给自己的潜意识喊话。 另外,是因为确实尝到了做选择的甜,幸福和满足。 就如同谈恋爱一...
    S随便花阅读 312评论 0 0
  • 1. 彤彤是我堂弟的女儿。 两年前,第一次去峨眉山行走的时候,因为彤彤刚好放假在家,我便邀请她一起去,当时心里只是...
    文晓玲阅读 618评论 11 6
  • 嘿,是不是突然发现更新弹窗提示好好地怎么就没有提示内容了?去看接口返回的数据,卧槽连releaseNotes字段都...
    走着走着就会敲代码了阅读 526评论 0 1