Я пишу библиотеку Python функций для преобразования набора данных, и для каждой из них мне нужно выполнить некоторые базовые c проверки преобразованных данных:
- Должно быть нет отрицательных значений в наборе данных после преобразования
- Сумма всех значений в преобразованном наборе данных должна быть в некотором указанном соотношении к сумме значений до преобразования.
Для первого Задача, я могу дать всем своим функциям декоратор с именем вроде check_for_negatives
.
Однако для второй задачи отношение вывода к вводу будет меняться при каждом вызове конкретной функции, в зависимости от ввода параметры - так что вызывающая сторона может ожидать, что сумма набора данных не изменится или будет равна x1,5 для различных вызовов одной и той же функции.
Единственный способ, которым я могу это сделать с помощью декораторов, - это иметь декоратор для проверки отношения ввода: вывода, но передать ожидаемое соотношение в качестве аргумента самой функции (хотя функция не будет использовать его напрямую). Это не кажется очень хорошим; есть ли лучший способ?