检索/打印执行内容

2024-06-28 20:30:41 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑:这个问题已经在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)

这将产生以下预期输出:

^{pr2}$

感谢apphacker和ConcernedOfTunbridgeWells为我指出了这个答案


Tags: 代码用户self算法defcontextvalcurrent
2条回答

尝试:

class TheClass(object):
    def __init__(self,val):
        self.val=val
    def thefunction(self,a,b):
        c=a+b
        print locals()


C=TheClass(2)
C.thefunction(1,2)

您可以使用__locals__来获取本地执行上下文。请参阅this stackoverflow posting以了解一些可能也相关的讨论。在

相关问题 更多 >