Python 3:检查一个函数是否被另一个函数调用
在Python3中,是否有方法检查另一个函数是否执行了特定的函数?如果一个函数是由函数本身调用的,我希望计算机做一些事情,如果另一个函数调用它,则希望计算机做一些其他事情。以下是一个例子:Python 3:检查一个函数是否被另一个函数调用,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,在Python3中,是否有方法检查另一个函数是否执行了特定的函数?如果一个函数是由函数本身调用的,我希望计算机做一些事情,如果另一个函数调用它,则希望计算机做一些其他事情。以下是一个例子: def x(): y() def y(): """Psuedocode --->""" if function y was called by function x: print ("function y was called by another funct
def x():
y()
def y():
"""Psuedocode --->"""
if function y was called by function x:
print ("function y was called by another function")
elif function y was not called by function x:
print ("function y was called not called by another function")
Input ----> x()
Output ---> function y was called by another function
Input ---> y()
Output ---> function y was not called by another function
您可以使用名为“Inspect”的Python特性。它返回帧记录的列表。每个记录中的第三个元素是调用方名称。请参阅此处的文档:
您可以使用名为“Inspect”的Python特性。它返回帧记录的列表。每个记录中的第三个元素是调用方名称。请参阅此处的文档:
请注意,这种方法对于生产环境是相当不可靠的,因为它依赖于底层CPython的实现。非常感谢您的回答。真的很有帮助。很高兴我能帮助您:)。请注意,这种方法对于生产环境是相当不可靠的,因为它取决于底层CPython的实现。非常感谢您的回答。真的帮了忙。很高兴我能帮你:)。
import inspect
def x():
print inspect.stack()[1][3]
def y():
x()