Обратный вызов контекстного менеджера для вызываемых аргументовPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Обратный вызов контекстного менеджера для вызываемых аргументов

Сообщение Anonymous »


В 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) Я пока понятия не имею, как кодировать такие «обратные вызовы» для вызываемых аргументов.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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