2020-07-03
阅读量:
3212
python报first argument must be callable or None的错误

可调用函数作为初始化函数参数
除了接受类型名称作为初始化函数的参数之外,还可以使用任何不带参数的可调用函数,并以该函数返回值作为默认值。例如,定义函数zero()让默认值为0:
from collections import defaultdict
def zero():
return 0
d = defaultdict(zero)
d['eric']
0
d
defaultdict(<function zero at 0x100662e18>, {'eric': 0})或者使用lambda函数:
d = defaultdict(lambda: 0)
d['amy']
0
d
defaultdict(<function <lambda> at 0x1019d3d90>, {'amy': 0})需要注意的是, defaultdict接受的参数必须是可调用的。若直接传递数字0,就会出现TyptError的异常。
d = defaultdict(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: first argument must be callable or None
57.5758
4
2
关注作者
收藏
评论(0)
发表评论
暂无数据

