python在寫類似switch邏輯時(shí)
switch = {
"a":print(1),
"b":print(2),
"c":print(3)
}
try:
switch["c"]
except KeyError as e:
pass
這個(gè)的輸出是 1 2 3 而不是預(yù)期的 3 ,求問(wèn)這是什么原因
1 回答

臨摹微笑
TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
不要在 dict 里面用 print。
print 函數(shù)會(huì)在賦值給 switch 之前就執(zhí)行了,所以打印出了 1 2 3,而實(shí)際上,此時(shí) switch 是 {"a": None, "b": None, "c": None}
,因?yàn)?print 的返回值是 None。
你可以這樣寫:
switch = {"a": 1, "b": 2, "c": 3}
try:
print(switch["c"])
except KeyError as e:
pass
添加回答
舉報(bào)
0/150
提交
取消