我嘗試在Python中實現開關/外殼機制。在閱讀了幾個網站和問題後(例如this one),我構建了下面的代碼。但它的行爲是錯誤的,具有我所理解的 - 一個可以是problematic to get的轉折,當然不是默認的預期結果。在Python字典中翻譯替換開關/外殼
def something():
print 'something'
def somethingElse():
print 'something else'
def switch():
cases = {
0: something(),
1: something(),
2: something(),
3: something(),
4: something(),
5: something()
}
cases.get(2, somethingElse())
switch()
(顯然,對於每一種情況下相同的開關僅僅是用於示例的目的)
當我運行它,我期望something()
要只運行一次(如我手動輸入2
)。但是,控制檯中的輸出爲:
something
something
something
something
something
something
something else
這意味着它運行了6次加上默認值運行。我不明白在這個代碼中允許這樣一個轉折嗎?或者問題可能不同?
這是Python 2.7.12這裏。
謝謝錯誤是明顯在'()'應該是運行一個函數的地方。謝謝你方的意見,我會糾正這些。 – adamczi