为什么Python中的dict.setdefault方法不能按预期工作?

时间:2017-09-07 20:25:05

标签: python

来自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

为什么?

0 个答案:

没有答案