我的目标是模拟一个应用程序的序列图,为此我需要在运行时获得关于调用者和被调用者类名的信息。我可以成功检索调用方函数,但无法获取调用方类名?
#Scenario caller.py:
import inspect
class A:
def Apple(self):
print "Hello"
b=B()
b.Bad()
class B:
def Bad(self):
print"dude"
print inspect.stack()
a=A()
a.Apple()
当我打印堆栈时,没有关于调用方类的信息。那么在运行时是否可以检索调用方类?
使用来自Python: How to retrieve class information from a 'frame' object?的答案
我得到这样的东西。。。
它提供了以下输出:
显然,这会返回对类本身的引用。如果需要类的名称,可以从
__name__
属性中获取。不幸的是,这不适用于类或静态方法。。。
好吧,在经过一番调查之后,我得到了如下结论:
调用时:
给定文件
test.py
:不确定当从对象以外的对象调用时它将如何工作。
相关问题 更多 >
编程相关推荐