興味深い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に投票したときに理由を述べてください。この質問は、私にとって基本的な初心者の質問のように見えます。 –
なぜ私は-1であったのだろうと思っていました。そして、私はパイソンの初心者です... –
Pythonのswitch文の欠如は、私がPythonを愛する多くの理由の1つです。これで、読みやすく、維持しやすい戦略パターンを使用しています。選択した回答に戦略パターンを使用するときは、より良い命名法を使用することをお勧めします。あなたが選んだ命名法は、実際にあなたが良い習慣を使っているときに、あなたが慎重にpythonのcase文がないことをコーディングするように見えるようにします。 – marr75