我怎样才能知道哪些参数映射到哪些变量?

2024-04-20 09:55:29 发布

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

如果我能检查哪些变量被分配给哪些参数,我的生活就会容易得多。你知道吗

排队:

self.manager.addState("", [0,0])   # start with 2 empty buckets

addState方法在manager类中定义为带2个参数。它在playGame方法中调用。我无法理解签名中的哪些参数映射到调用中的哪些参数。你知道吗

def addState (self, parentState, newState) :
        "add state if it's new. Remember its parent"
        if self.seen.has_key(str(newState)) : return
        self.seen[str(newState)] = str(parentState)
        self.queue.append (newState)

在下面的代码中,如果我假设newState对应于[0,0],因为它不是一个单数值(我不确定""映射到什么),那么这个代码就不应该运行。你知道吗

self.manager.addState("", [0,0])   # start with 2 empty buckets

问题:

我的理解正确吗?你知道吗

最简单的方法是什么来检查它的运行状态,以便验证哪些参数映射到哪些参数?你知道吗

问题链接:http://www.openbookproject.net/py4fun/buckets/buckets.py


Tags: 方法代码self参数ifwithmanagerstart
1条回答
网友
1楼 · 发布于 2024-04-20 09:55:29

But if i assume that [0,0] corresponds to parentState and newState then how "" is passed as parameter in

这个假设是你的问题。你知道吗

[0,0]newState的值,""parentState的值

在您链接的示例中,世界的状态由一维数组表示。世界的开始状态是两个桶,用[0,0]表示,如果有一个null状态,用""表示,只在游戏开始时适用。你知道吗

检查事物状态的一个非常简单的方法是使用pdb

def addState (self, parentState, newState) :
    "add state if it's new. Remember its parent"

    # Let's augment this by adding a breakpoint
    import pdb; pdb.set_trace()    

    if self.seen.has_key(str(newState)) : return
    self.seen[str(newState)] = str(parentState)
    self.queue.append (newState)
    #print ' - Adding ', newState

现在,当您从python解释器运行此代码时,pdb将中断这些行,您可以检查发生了什么。你知道吗

(Pdb) parentState
""
(Pdb) newState
[0,0]

相关问题 更多 >