Python Note

  • Python性能优化
  • Python speed
  • High Performance Python tutorial
  • 带有__del__的类需要手动释放循环引用
  • 详见:Python中带有显式__del__方法的对象需要手动释放循环引用

  • 方法默认参数不要使用可变类型
  • [python]
    def foo(a=[])
    a.append(1)
    print a

    foo()
    foo()
    [/python]

    Expect:
    [1]
    [1]

    Actual:
    [1]
    [1,1]

    详见:Python函数默认参数的一个小陷阱

  • 使用xrange, dict.iteritems代替range, dict.items
  • xrange和dict.iteritems返回都是generator,而range和dict.items返回的是一个列表。使用前者更节省内存,而xrange更会比range快一点(help(xrange))