Python 3:检查一个函数是否被另一个函数调用

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

在Python3中,是否有方法检查另一个函数是否执行了特定的函数?如果一个函数是由函数本身调用的,我希望计算机做一些事情,如果另一个函数调用它,则希望计算机做一些其他事情。以下是一个例子:

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()