我如何找出哪些参数映射到哪些变量?

How can I figure out which parameters map to which variables?

如果我可以检查哪些变量分配给哪些参数,我的生活会容易得多。

行中:

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

addState 方法在 manager class 中定义为采用 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

问题:

我的理解正确吗?

检查此 运行ning 状态的最简单方法是什么,以便我可以验证哪些参数映射到哪些参数?

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

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]