Мне нужно исправить мою библиотеку, чтобы заменить экземпляр символа, и на него ссылаются некоторые замыкания функций. Мне нужно скопировать эти функции (поскольку мне также нужен доступ к исходной неисправленной версии функции), но __closure__
является неизменяемым, и я не могу copy.copy
его, так как я могу создать новые объекты замыкающих ячеек в Python 2.7?
Я, например, дал эту функцию
def f():
def incorrectfunction():
return 0
def g():
return incorrectfunction()
return g
def correctfunction():
return 42
func = f()
patched_func = patchit(f) # replace "incorrectfunction"
print func(), patched_func()
И я хочу видеть
0, 42
functools.partial(f, 2)()
? - person Ashwini Chaudhary   schedule 06.06.2016