python在写类似switch逻辑时
switch = {
"a":print(1),
"b":print(2),
"c":print(3)
}
try:
switch["c"]
except KeyError as e:
pass
这个的输出是 1 2 3 而不是预期的 3 ,求问这是什么原因
1 回答
临摹微笑
TA贡献1982条经验 获得超2个赞
不要在 dict 里面用 print。
print 函数会在赋值给 switch 之前就执行了,所以打印出了 1 2 3,而实际上,此时 switch 是 {"a": None, "b": None, "c": None}
,因为 print 的返回值是 None。
你可以这样写:
switch = {"a": 1, "b": 2, "c": 3}
try:
print(switch["c"])
except KeyError as e:
pass
添加回答
举报
0/150
提交
取消