没搞懂,为何if判断中,加了赋值操作,第二次调用才会进入,而不加赋值操作,if判断条件都不进入了
def buggy(arg, result=[]):
if result==[]:
print(result)
result=[]
print(result)
result.append(arg)
print(result)
def buggy(arg, result=[]):
if result==[]:
print(result)
#result=[]
print(result)
result.append(arg)
print(result)
忘记添加图片了
当list等可变类型作为默认参数时,仅仅在定义函数的时候(也就是执行def语句)被计算一次,有且仅有这么一次。
http://blog.csdn.net/emaste_r/article/details/47358843