Как я могу ввести код в начале функции? - PullRequest
0 голосов
/ 04 февраля 2019

Я хотел бы иметь возможность вставлять фрагмент кода в начало данной функции.

В исследованиях в основном упоминается использование декораторов, но для моего конкретного случая использования я бы не хотел переносить измененныйфункция с дополнительным вызовом функции.

Я также не могу добавить параметр в функцию - у меня уже есть скомпилированная функция во время выполнения и все.

Причина, по которой я не хотел быиспользовать обертку, потому что я хотел бы написать служебную библиотеку, которая позволяет программисту «вставлять» кусок кода в начало уже написанной функции, не добавляя еще один уровень в стек вызовов вообще.В основном из соображений производительности.

Как это можно сделать?И будет ли он работать на всех версиях Python без сбоев?

1 Ответ

0 голосов
/ 04 февраля 2019

Преждевременная оптимизация - корень всего зла.Вы не должны «просто предполагать», что функция-оболочка окажет значительное влияние на производительность.Не существует безопасного, простого, портативного способа сделать то, что вы просите.Наиболее применимым решением является пользовательский метакласс , поскольку он позволяет вам контролировать создание новых объектов на его основе.

...