【发布时间】:2013-06-08 12:59:06
【问题描述】:
我的目标是为此创建一个应用程序的序列图,我需要在运行时获取有关调用者和被调用者类名的信息。我可以成功检索到调用者函数但无法获取调用者类名?
#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()
当我打印堆栈时,没有关于调用者类的信息。那么是否可以在运行时检索调用者类?
【问题讨论】:
-
“调用者类”是什么意思。你是说
a、A、b还是B? -
@mgilson 我的意思是当代码在 B 类(被调用者)下的方法“def Bad”中运行时,我必须能够打印检索调用者类的名称,即在这种情况下为“A”。
-
@mgilson 我可以打印“inspect.stack()[1][3]”语句,这只会让我得到调用者函数。
-
类似的,相关的,有趣的:get a class name of calling method
标签: python stack runtime sequence-diagram