Это действительно зависит от того, что делают эти 4 строки, если честно, и от того, как они влияют на остальную часть логики. c.
. В любом случае вы можете попытаться экстернализовать эти строки кода (либо назначение переменной или вызовы функций, в зависимости от того, что они могут быть) с параметрами, поэтому попытайтесь выяснить, какие параметры вам нужны для этих 4 строк, или, если они используются сами по себе в оставшейся части блока кода, выведите остальную часть как функцию, принимающую параметры, соответствующие до 4 строк кода.
Как только вы сможете отделить 4 строки от остальной части кода, создайте структуру, похожую на список / dict / объект, в зависимости от того, что лучше подходит для вашего случая, чтобы добавить это «4 строки кода», отличающиеся от каждого из 50-51 блоков, которые у вас есть, и, в конечном итоге, перебирают указанную структуру и вызывают уже выведенный из предыдущих шагов блок кода, предоставляя 4 строки содержимого из указанной итерации.
TL; DR:
разделить 4 строки от остальных block
остальная часть блока становится автономной функцией (назовем ее execute_process
)
, чтобы 4 строки были либо функцией, либо параметрами для остальная часть блока
создает структуру (list / dict / obj), охватывающую возможности для 4 строк кода -> давайте назовем это process_params
итерация по указанной структуре и передача каждого из process_param
из созданного process_params
в execute_process
** Теперь у вас есть только 47 строк кода в функции, и структура, охватывающая 4 строки с каждой возможной конфигурацией для них.
Пример: Итак, у вас есть XPATH и 3 идентификатора, которые меняются? Вы можете легко создать список словарей, например, в котором вы будете хранить значения для строк, которые меняются, и добавить оставшуюся часть кода в функцию, принимая эти 4-5 параметров. После этого просто переберите указанный список словарей и вызовите функцию, используя доступные данные.
for data_feed in test_scenarios:
execute_test(xpath=data_feed["xpath"],
tags=data_feed["tags"],
title=data_feed["title"],
msg=data_feed["msg"])