来自docs:
setdefault(key [,default])
如果key在字典中,则返回其值。如果不是,请插入值为default的值并返回default。默认默认为无。
https://docs.python.org/3/library/stdtypes.html#mapping-types-dict
代码:
def f():
print('func work')
return 33
d = {}
key = 'key'
print(d.setdefault(key,f()), ' - key not in dict')
print(d.setdefault(key,f()), ' - key in dict, but method "setdefault" not return value, instead it run func again')
结果:
> Python 3.6.1(默认,2015年12月,13:05:11) Linux上的[GCC 4.8.2] >功能工作 > 33 - 键不在词典中 >功能工作 > 33 - 键入dict,但方法“setdefault”不返回值,而是再次运行func
为什么?