如何修改代码
def mackfunc(a):
def func(b):
return a+b
return func
f = mackfunc(1)
print(f(1))
print(f(2))
def mackfunc(a):
def func(b):
return a+b
return func
f = mackfunc(1)
在这里添加一些东西
print(f(1))
print(f(2))
我希望这里的输出是3和4
答案 0 :(得分:0)
不能。 func
是一个局部变量,不会受到函数外部的干扰。您可以完全重新定义mackfunc
,也可以将其包装。
# redefine
def mackfunc(a):
def func(b):
return a + b + 1
return func
# wrap
orig_mackfunc = mackfunc
def mackfunc(a):
orig_func = orig_mackfunc(a)
def func(b):
return orig_func(b) + 1
return func
答案 1 :(得分:0)
您可以在内部函数中使用自定义函数,然后在以后重新定义它
def custom(arg):
return arg
def mackfunc(arg):
def func(b):
return custom(arg)+b
return func
f = mackfunc(1)
print(f(1))
print(f(2))
print()
def newcustom(arg):
return arg + 1
custom = newcustom
print(f(1))
print(f(2))
输出
2
3
3
4
希望这会有所帮助。 :)