【发布时间】:2018-03-10 19:45:07
【问题描述】:
在 Python 中,如果函数在调用它的函数中本地定义,我有一个装饰器必须跳过任何实际工作。我做了一个简单的测试脚本:
def fn1():
# @my_decorator will be here
def fn2():
pass
print(fn2)
return fn2
x = fn1()
print(x)
print(x.__module__)
它打印这个:
<function fn1.<locals>.fn2 at 0x7fd61bdf3ae8>
<function fn1.<locals>.fn2 at 0x7fd61bdf3ae8>
__main__
如我所见,Python 看到该函数是在本地空间中定义的(打印文本中的<locals>),但我看不出如何找到那部分数据。我浏览了inspect 模块,没有看到任何类似的东西。
我不能依赖函数是否在全局变量中。
我用什么?
【问题讨论】:
标签: python python-3.x python-decorators