python switch这样写有什么问题

python在写类似switch逻辑时

switch = {
    "a":print(1),
    "b":print(2),
    "c":print(3)
}
try:
    switch["c"]
except KeyError as e:
    pass

这个的输出是 1 2 3 而不是预期的 3 ,求问这是什么原因

慕森王
浏览 462回答 1
1回答

临摹微笑

不要在 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python