【发布时间】:2010-10-19 12:56:28
【问题描述】:
编辑:这个问题在 apphacker 和 ConcernedOfTunbridgeWells 的帮助下得到了解决。我已更新代码以反映我将使用的解决方案。
我目前正在编写一个群体智能模拟器,并希望为用户提供一种简单的方法来调试他们的算法。在其他输出中,我认为在算法的每个步骤开始时为用户提供执行上下文的打印输出是有益的。
以下代码实现了我所需要的。
import inspect
def print_current_execution_context():
frame=inspect.currentframe().f_back #get caller frame
print frame.f_locals #print locals of caller
class TheClass(object):
def __init__(self,val):
self.val=val
def thefunction(self,a,b):
c=a+b
print_current_execution_context()
C=TheClass(2)
C.thefunction(1,2)
这给出了预期的输出:
{'a': 1, 'c': 3, 'b': 2, 'self': <__main__.TheClass object at 0xb7d2214c>}
感谢 apphacker 和 ConcernedOfTunbridgeWells 向我指出了这个答案
【问题讨论】:
-
由于官方支持标签,因此无需为标题添加标签。标题中的 [Python] 可能会给您的问题带来很多关注,但它并不能衡量我在实际使用“python”作为标签时得到的大黄色背景。
-
不要将问题编辑为“已解决”——接受解决问题的答案。或发布您自己的答案。
-
将来我会,但是编辑只是替换了#????用2行实现了这个功能,所以变化不大。
标签: python