在python中假设一个嵌套函数,其中outer
表示外部函数,inner
表示内部函数。外部函数提供内部函数的参数化,并返回此参数化函数的实例。
我想获得外部函数的名称,给出外部函数返回的内部函数的实例。 代码如下:
def outer(a):
def inner(x):
return x*a
return inner
p = outer(3)
print p # prints inner
print p(3) # prints 9
如何只打印outer
打印外部函数的名称,即p
?
谢谢!
答案 0 :(得分:4)
您可以使用functools.wraps
:
from functools import wraps
def outer(a):
@wraps(outer)
def inner(x):
return x*a
return inner
p = outer(3)
print p # <function outer at ...>
答案 1 :(得分:0)
这绝不是一个优雅的解决方案,我个人不会使用它。但它回答了你问的问题。
def outer(a):
def inner(x):
return x*a
inner.__name__ = 'outer'
return inner
print p
<function outer at 0x10eef8e60>