私が開発したすべてのモジュールをメインプログラムに入れたときに問題が発生しました。私が作成したスイッチ辞書は以下の通りです:スイッチ辞書内の関数の実行
def Tank_Shape_Calcs(Tank_Shape, level, area, dish, radius, length, Strapping_Table, Tank_Number):
switcher = {
0: vertical.Vertical_Tank(level, area),
1: horiz.Horiz_Cylinder_Dished_Ends(dish, radius, level, length),
2: strapping.Calc_Strapped_Volume(Strapping_Table, level),
3: poly.Fifth_Poly_Calcs(Tank_Number)
}
return switcher.get(Tank_Shape, "ERROR: Tank type not valid")
タンクの形状は、各タンクのループでメインファイルに設定されています。最初のタンクにはTank_Shape = 2
がありますので、Calc_Strapped_Volume()
関数を実行すると思います。
私はそれをテストしようとしましたが、スイッチャー機能はTank_Shape
を確実に2
と読んでいます。また、関数を文字列に変更すると、正しい文字列が出力されます。
問題は、正しい関数が呼び出されるまで関数が順番に実行されているように見えることです。これは、私が使用しているデータが正しい関数でのみ動作するため、エラーが発生します。
正しい機能のみを実行する方法はありますか?
あなたのコードを構造化しまし方法(手動または所望の動作に応じて、必要とされないことがあり、いくつかの異なる引数を、複数の行動を扱う組み合わせるためのラムダの辞書を使用して、&cが。)あなたは、Pythonに新しいしていることを示唆しています。あなたのコードのより完全なコピーをcodereview.stackexchange.comに投稿することをお勧めします。そこにユーザーのいくつかのあなたに、より効果的にあなたのコードを記述する方法についていくつかのヒントを与えることができるかもしれません: ') – gntskn