为了账号安全,请及时绑定邮箱和手机立即绑定

python switch这样写有什么问题

python switch这样写有什么问题

慕森王 2019-02-17 07:18:36
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
查看完整回答
反对 回复 2019-03-01
  • 1 回答
  • 0 关注
  • 461 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信