我正在尝试使用cProfile.run
来分析一个嵌套函数。我明白也许cProfile
并不在我调用它的同一作用域中运行,但我不太确定实现这一点的惯用方法是什么。以下是一个MVCE:
def foo():
def bar():
# do something here
return 1
cProfile.run('bar()')
产生错误:
NameError: name 'bar' is not defined
cProfile.runctx
:def foo():
def bar():
# do something here
return 1
cProfile.runctx('bar()', None, locals=locals())
使用 cProfile.run
def foo():
def bar():
# do something here
return 1
cProfile.run(bar.__code__)