Оптимизация проверки ввода во вложенных методах классаPython

Программы на Python
Anonymous
Оптимизация проверки ввода во вложенных методах класса

Сообщение Anonymous »


У меня есть следующий пример класса:

класс MyClass: @классметод def метод1 (cls, значение): print(f'method1 вызывается со значением: {value}') cls.method2 (значение) cls.method3 (значение) @классметод def метод2 (cls, значение): print(f'method2 что-то делает с предоставленным значением: {value}') @классметод def метод3 (cls, значение): print(f'method3 что-то делает с предоставленным значением: {value}') Как видите, здесь присутствует вложенная логика. method1 должен вызывать методы method2 и method3. Теперь каждый раз, когда вызывается какой-либо из методов (у меня их гораздо больше), я хочу проверить входное значение. Я мог бы определить метод класса, а затем вызвать cls._verify(cls, value) в начале каждой функции. Однако это будет означать, что мои данные будут проверены несколько раз.

Как я могу эффективно выполнить проверку ввода для набора методов класса, включая вложенные вызовы, без многократной избыточной проверки ввода?

Я пробовал: (1) Я пытался добавить аргумент «кэш» (т. е. cls._already_verified), который после проверки будет иметь значение True. Проблема с этим подходом заключается в том, что при следующем запуске другого метода моего класса значение все равно будет True. Кроме того, (2) вызов метода _verify только в общедоступных классах не будет работать, поскольку многие методы основаны на других общедоступных методах.

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