【发布时间】:2018-09-13 04:50:45
【问题描述】:
我正在尝试访问特定调用 list.sort 方法的帧信息,但我遇到了问题。
import inspect
def calm_pear(x): # compare
cur_frame = inspect.currentframe()
out_frames = inspect.getouterframes(cur_frame)
print(out_frames[0].function) # prints 'calm_pear'
print(out_frames[1].function) # prints 'inner'
print(out_frames[2].function) # prints 'outer'
return id(x)
def outer():
inner()
def inner():
[0, 1].sort(key=calm_pear)
outer() # call outer
我得到的打印输出是:
calm_pear
inner
但是,调用顺序是(outer、inner、list.sort、calm_pear)
为什么out_frames[1].function 不像list.sort?
【问题讨论】:
标签: python python-3.x introspection inspect stack-frame