8
在PEP 3103中,Guido正在討論爲各種流派,思想,方法和對象添加一個switch/case語句給Python。在他做this statement:PEP 3103:開關情況與if語句代碼塊之間的區別
另一種反對意見是,首先使用規則允許混淆代碼 這樣的:
def foo(x, y): switch x: case y: print 42
爲未經訓練的眼睛(不熟悉Python)這個代碼就相當於對此:
def foo(x, y): if x == y: print 42
但這不是它所做的(除非總是使用與第二個參數相同的值調用它)。這已經通過暗示不應該允許引用局部變量的情況表達式來解決,但是這有點武斷。
我不會認爲自己沒有受過訓練或不熟悉Python,但是沒有什麼會跳出來,因爲這兩個代碼塊是不同的。
他引用的是什麼使得這兩段代碼在執行過程中有所不同?
這是有道理的。我認爲這可能與冷凍詞典的概念有關,但我想我的表態讓任何人都應該注意到表達方式不同。 –