我正在使用Python 3,并且尝试检查当前方法是否已从特定方法调用。这个不一定是父调用,而只能是祖先之一。
示例:
我需要知道是否从方法中调用方法 F C 。方法 A 调用 B , B 调用 C , C 调用 D , D 呼叫 E , E 呼叫 F 。因此, F 的祖先方法是 [A,B,C,D,E] 。由于 C 在此列表中, 方法返回
True
,否则返回False
。
我有两种解决方案(我将用参数替换方法名称):
第一个,我认为速度更快:
for frame in inspect.stack():
if frame.function == 'C':
return True
第二个:
methods = [frame.function for frame in inspect.stack()]
if 'C' in methods:
return True
第一个解决方案更好吗?有什么建议可以改善吗?这已经在任何库中进行了吗?