У меня есть несколько методов, которые имеют следующий формат:Возможно ли динамическое заполнение методов Python кодом?
def p_methodone(a):
pass
def p_methodtwo(a):
pass
...
Я хотел бы, чтобы удалить pass
и заполнить эти методы с кодом a[0] = a[1]
. Возможно ли это сделать в Python динамически, используя что-то вроде отражения? Причина в том, что у меня есть лот этих методов, и код a[0] = a[1]
может измениться позже - было бы неплохо изменить его только в одном месте (вместо поиска и замены).
(Примечание. Я не могу изменить эти определения в любом случае, так как внешняя библиотека опирается на них, находясь в этом формате)
Возможно ли, что какой-либо другой части программы получил ссылку на функции вы хотите изменить? Если это так, эти части будут по-прежнему иметь старую функцию после перезаписи имени, например, sfk и Rustam. Решение, которое должно работать даже в этом случае, представлено в разговоре [Do not Do It: Некоторые вещи, которые вы никогда не должны делать в python] (http://www.reddit.com/r/programming/comments/1hu12x/dont_do_this_some_things_you_should_never_do_in /). Он включает беспорядок с атрибутом '__code__'. Конечно, это академический интерес, так как вы не должны этого делать. :) –