Использование совпадения и регистра несколько раз в функции – можно ли сделать этот код более кратким? [закрыто]Python

Программы на Python
Anonymous
Использование совпадения и регистра несколько раз в функции – можно ли сделать этот код более кратким? [закрыто]

Сообщение Anonymous »

Я пишу скрипт Python (часть более крупного инструмента, который я создаю) и хочу знать, является ли приведенный ниже способ лучшим способом условного кодирования. Я использую Python, поскольку это язык, который я понимаю лучше всего.
Я начал использовать «сопоставление и регистр» вместо операторов «if-elif-else», но приведенный ниже код выглядит более неуклюжим.

Код: Выделить всё

ROM_Feed = 50000
Bene_method1 = 0
Bene_method2 = 1
Bene_method3 = 1

def Mill_makeup_water(ROM_Feed,Bene_method1,Bene_method2,Bene_method3):
match Bene_method1:
case 0:
makeup_water1 = ((((ROM_Feed-250)/(95000-250)) * (4.5 - 2.5)) + 2.5) * ((((ROM_Feed-250)/(95000-250)) * (0.4 - 0.1)) + 0.1)
case _:
makeup_water1 = 0
match Bene_method2:
case 0:
makeup_water2 = ((((ROM_Feed-250)/(95000-250)) * (4.5 - 2.5)) + 2.5) * ((((ROM_Feed-250)/(95000-250)) * (0.4 - 0.1)) + 0.1)
case _:
makeup_water2 = 0
match Bene_method3:
case 0:
makeup_water3 = ((((ROM_Feed-250)/(95000-250)) * (4.5 - 2.5)) + 2.5) * ((((ROM_Feed-250)/(95000-250)) * (0.4 - 0.1)) + 0.1)
case _:
makeup_water3= 0

makeup_water = sum([makeup_water1,makeup_water2,makeup_water3])

return makeup_water

if __name__ == '__main__':
x = Mill_makeup_water(ROM_Feed,Bene_method1,Bene_method2,Bene_method3)
Это правильно или есть лучший способ изложить это? Я уже думаю, что повторяющаяся формула должна быть переменной внутри функции для упрощения, но меня больше интересуют повторяющиеся операторы match и case.

Подробнее здесь: https://stackoverflow.com/questions/789 ... e-more-con

Вернуться в «Python»