У меня возникла проблема при установке всех модулей, которые я разработал в основную программу. Словарь переключатель Я создал можно увидеть ниже:Выполнение функций в словаре коммутаторов
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
. Также, если я изменил функции на строки, он напечатает правильную строку.
Проблема в том, что функции, похоже, выполняются последовательно, пока не будет вызвана правильная функция. Это приводит к ошибкам, так как данные, которые я использую, будут работать только с правильной функцией.
Есть ли способ выполнить только правильную функцию?
Способ, которым вы структурировали свой код (вручную используя словарь lambdas для обработки нескольких действий, сочетая несколько разных аргументов, которые могут потребоваться или не понадобиться в зависимости от желаемого поведения и т. Д.) Предполагает, что вы новичок в Python , Я бы предложил вам опубликовать более полную копию вашего кода на codereview.stackexchange.com; некоторые пользователи могут дать вам несколько советов о том, как лучше писать код: ') – gntskn