热线电话:13121318867

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

image.png

可调用函数作为初始化函数参数

除了接受类型名称作为初始化函数的参数之外,还可以使用任何不带参数的可调用函数,并以该函数返回值作为默认值。例如,定义函数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
2
关注作者
收藏
评论(0)

发表评论

暂无数据