本帖持续更新:
1、避免使用__del__
http://stackoverflow.com/questions/6104535/i-dont-understand-this-python-del-behaviour
2、在局部使用全局变量时使用global
python在运行函数的时候,首先会静态地扫一遍,
把所有变量(静态、没赋予实际的值)放入局部变量列表中,导致前面的引用失败。例如
bar = 1 def foo(): print bar bar = 0
3、不要用可变的值作为参数默认值,可以用None代替
因为可变的值会在定义的时候初始化,然后就一直引用它了,
以后若这个可变的值发生改变,也导致这个默认值发生改变。例如
def foo(numbers=[]): numbers.append(1) print numbers
foo()
[1]
foo()
[1,1]