在有趣的Python語言中深入潛水,因此在語言中沒有任何開關可以作爲構造。所以使用字典是閱讀學習python第一版的第一選擇。於是,我就某事像,帶功能的另一個開關盒
cases = { 2 : readt3(e,t,off, partElems, partsNodes), # to read the triangular elements
3 : readq4(e,t,off, partElems, partsNodes), # to read the quadrangular elements
5 : readh8(e,t,off, partElems, partsNodes), # to read the hexa elements
}
# define functions
def readt3(e, t, off, partElems, partsNodes, partPnt):
partsElems[partPnt].append(e)
nods = t[offset: offset+3];
for n in nods:
partsNodes[partPnt].append(n)
return
,並得到了錯誤「readt3是不確定的」,我想我得到了這個,因爲它沒有被定義之前的話,那麼移動的功能定義了上述情況,但仍是同樣的問題,但這一次「e沒有定義」我不明白這一點,所以e是一個函數參數,爲什麼我在e上得到一個定義相關的錯誤?
在這種情況下,在模擬開關盒的情況下,應該將函數定義放在哪裏?
+1以平衡-1票。請當你投票-1時,給出一個理由。這個問題對我來說看起來像一個基本的初學者問題。 – 2011-01-13 15:42:30
我也想知道爲什麼有一個-1,是的,我是一個Python初學者... – 2011-01-13 15:44:45
Python缺乏switch語句是我愛Python的許多原因之一。現在,您正在使用一種易於閱讀且易於維護的戰略模式。我建議您在選擇的答案中使用策略模式時,使用一些更好的命名。你選擇的命名使得它看起來像是在你正在使用一種良好的習慣時,你正在圍繞python缺乏病例陳述進行編碼。 – marr75 2011-01-13 16:33:52