2020-07-03
阅读量:
2963
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






评论(0)


暂无数据