文章预览
用一个可变的值作为默认值 这是一个绝对值得放在第一个来说的问题。不仅仅是因为产生这种BUG的原因很微妙,而且这种问题也很难检查出来。思考一下下面的代码片段: Python学习交流 330637182 群内每天更新相关资料 def foo ( numbers = [ ] ) : numbers . append ( 9 ) print numbers 在这里,我们定义了一个 list (默认为空),给它加入9并且打印出来。 >>> foo ( ) [ 9 ] >>> foo ( numbers = [ 1 , 2 ] ) [ 1 , 2 , 9 ] >>> foo ( numbers = [ 1 , 2 , 3 ] ) [ 1 , 2 , 3 , 9 ] 看起来还行吧?可是当我们不输入number 参数来调用 foo 函数时,神奇的事情发生了: >>> foo ( ) # first time, like before [ 9 ] >>> foo ( ) # second time [ 9 , 9 ] >>> foo ( ) # third time... [ 9 ,
………………………………