スイッチの代わりに使うことができるこの小さなコードを試しています。しかし、私はエラーがうまくいく。スイッチをPythonで代替する
def main(x):
x = x.split(' ')
return {'Function1' : Function1(x),
'Function2' : Function2(x),
}[x[0]]
def Function1(x):
var1 = x[0]
var2 = x[1]
def Function2(x):
print x[0]
main("Function1 10")
上記のコードは正常に動作します。問題は、もし私がFunction1を主関数に引数なしでキーとして渡すと、自動的にFunction1に入り、範囲外のエラーをスローします。
main("Function2")
ありがとうございました。
あなたが任意の変数 'X'を定義していませんでしたが、あなたはその第1要素にアクセスしています – mirosval
@mirosvalそれはfun2自体には入りません。 – taz
他の言語の一般的なswitch文とは異なり、辞書でできることとはいくつか違いがあります。おそらくあなたがやろうとしていることとその方法に疑問を投げかけてください。関数への値のマッピングは、マッピング(あなたがやっていることの並べ替え)で行うことができ、switch文は必要ありません。 –