函数kwargs的范围行为

时间:2016-09-05 00:28:35

标签: python scope

从示例开始,

def foo(inp, out=[]):
    out.append(inp)
    return out

if __name__=='__main__':
    print foo('asd') #return ['asd']
    print foo('bsd') #return ['asd', 'bsd']

我希望out在函数foo的范围内定义,并且不会传递给函数的下一次调用。但正如您在致电foo('asd')后所看到的那样,调用foo('bsd')将会记住其之前的通话,并['asd', 'bsd']。我找不到out保存在我的python运行时中。它以某种方式无形地存储。

任何人都有想法吗?

0 个答案:

没有答案