Обратный вызов контекстного менеджера для вызываемых аргументов ⇐ Python
Обратный вызов контекстного менеджера для вызываемых аргументов
В Python 3 мне нужно иметь возможность использовать Callables со всеми их аргументами в качестве объектов для контекстного менеджера, чтобы до и после вызова этих методов/функций я мог выполнять определенные действия и вызывать сами методы в данных, подготовленных в эти действия предварительной обработки соответственно используют результаты для постобработки. Показанный ниже подход с использованием функции «выполнить» со списком методов — это всего лишь мое текущее предложение, но я открыт для любых предложений.
Рассмотрим стандартный менеджер контекста cm, реализованный в виде класса с методами __enter__ и __exit__:
класс MyContextManager(объект): def __init__(self, ...): : def __enter__(self, ...): : вернуть себя def __exit__(self, exc_type, exc_value, трассировка): : возвращаться def выполнить(...): # см. комментарий выше, это просто идея. Но как это должно было быть реализовано? : ? def preprocess(...): # см. ниже, предварительная обработка "обратного вызова" : def postprocess(...): # см. ниже, обработка "обратного вызова" : Тогда для такого вызова:
с MyContextManager(data) в виде cm: см.execute([ OneHotEncode (данные), MergeTinyCategories (данные, порог = n) ]) Я хочу иметь возможность выполнять этот «обратный вызов» для всех методов, указанных в списке методов выполнения:
cm.preprocess(OneHotEncode, данные) рез = OneHotEncode (данные) cm.postprocess(OneHotEncode, данные) cm.preprocess(MergeTinyCategories, данные, порог, n) рез = OneHotEncode (данные) cm.postprocess(MergeTinyCategories, данные, порог, n) Я пока понятия не имею, как кодировать такие «обратные вызовы» для вызываемых аргументов.
В Python 3 мне нужно иметь возможность использовать Callables со всеми их аргументами в качестве объектов для контекстного менеджера, чтобы до и после вызова этих методов/функций я мог выполнять определенные действия и вызывать сами методы в данных, подготовленных в эти действия предварительной обработки соответственно используют результаты для постобработки. Показанный ниже подход с использованием функции «выполнить» со списком методов — это всего лишь мое текущее предложение, но я открыт для любых предложений.
Рассмотрим стандартный менеджер контекста cm, реализованный в виде класса с методами __enter__ и __exit__:
класс MyContextManager(объект): def __init__(self, ...): : def __enter__(self, ...): : вернуть себя def __exit__(self, exc_type, exc_value, трассировка): : возвращаться def выполнить(...): # см. комментарий выше, это просто идея. Но как это должно было быть реализовано? : ? def preprocess(...): # см. ниже, предварительная обработка "обратного вызова" : def postprocess(...): # см. ниже, обработка "обратного вызова" : Тогда для такого вызова:
с MyContextManager(data) в виде cm: см.execute([ OneHotEncode (данные), MergeTinyCategories (данные, порог = n) ]) Я хочу иметь возможность выполнять этот «обратный вызов» для всех методов, указанных в списке методов выполнения:
cm.preprocess(OneHotEncode, данные) рез = OneHotEncode (данные) cm.postprocess(OneHotEncode, данные) cm.preprocess(MergeTinyCategories, данные, порог, n) рез = OneHotEncode (данные) cm.postprocess(MergeTinyCategories, данные, порог, n) Я пока понятия не имею, как кодировать такие «обратные вызовы» для вызываемых аргументов.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Обработка экземпляров контекстного менеджера внутри другого менеджера контекста
Anonymous » » в форуме Python - 0 Ответы
- 34 Просмотры
-
Последнее сообщение Anonymous
-