我對Python編程語言相當陌生,我期待更深入地瞭解字典理解是如何工作的(如果這實際上是第一位的話!)Python字典理解預執行方法
return {
'hello': method_call_1()
'goodbye': method_call_2()
'hello2': method_call_3()
}['hello']
見到這種情景,我會假設,method_call_1()
將被執行,因爲這是字典的鍵返回尋找。然而,在我的程序中,似乎另外兩個方法被執行(或者我因爲缺少它們而出錯),無論它們是否被返回。
這是標準行爲嗎?我唯一的假設是python編譯器會在實際使用之前預先執行方法調用,而不是隻執行所選擇的方法。
關閉我的頭頂,我大概可以解決這個問題的東西,如:
x = return {
'hello': 'method_call_1'
'goodbye': 'method_call_2'
'hello2': 'method_call_3'
}['hello']
x()
但這似乎是不恰當的做法,有沒有更好的方式去這件事嗎?
首先你構建字典。爲了構建它,提供這些值的函數必須被執行。 – Matthias