python 检查被覆盖的识别函数

python inspect identifying function that are overridden

我有类似的东西

def inspection():
    inspect.stack()
    ...

class A(object):
    def foo(self):
        # do stuff
        inspection()

class B(A):
    def foo(self):
        super(B, self).foo()
        # do other stuff
        inspection()

b = B()
b.foo()    

我正在使用检查模块从 foo 的两个实现中分析堆栈。我希望能够根据 inspect 中的信息区分这两个函数。

我可以获取函数名称(没有帮助)并且可以获取对象,但它只是告诉我在这两种情况下它都是 B 的一个实例。

只是需要做更多的研究。在 inspect 中,我找到了 Frame.f_code.co_firstlineno,我可以使用它来唯一标识我所在的 foo() 实现。