下面的代码说明了这个问题:
def fn(param, named_param={}, another_named_param=1):
named_param[param] = str(another_named_param)
another_named_param += param
return named_param
for i in range(0, 2):
result = {}
result = fn(i)
print result
print
for i in range(0, 2):
result = fn(i, named_param={})
print result
print
result = fn(0)
print result
result = fn(1)
print result
输出:
{0: '1'}
{0: '1', 1: '1'}
{0: '1'}
{1: '1'}
{0: '1', 1: '1'}
{0: '1', 1: '1'}
我希望第一个、第二个循环的输出和随后的 2 个单调用(其参数与 for 循环的值匹配)将具有相同的文本输出,但fn
保留named_param
if 未明确默认为空字典的值。文档中是否定义了功能?