在Python中如何从字典调用函数?

在Python中如何从字典调用函数?,python,Python,对你们来说很简单。为什么我不能让cmd从字典中运行函数?(我不想粘贴所有代码,但调用的所有东西都在其他地方有一个类或函数。我在commands.py文件中有名为“help()”和“exit()之类的函数,它已经被导入了。) 我得到的错误是:“第87行,在runCMD命令[cmd](Player,args)中,KeyError:0” 你应该打电话来 runCMD(cmd, 1, Player) # or runCMD(cmd, Player, 1) <= looks like they ar

对你们来说很简单。为什么我不能让cmd从字典中运行函数?(我不想粘贴所有代码,但调用的所有东西都在其他地方有一个类或函数。我在commands.py文件中有名为“help()”和“exit()之类的函数,它已经被导入了。)

我得到的错误是:“第87行,在runCMD命令[cmd](Player,args)中,KeyError:0”

你应该打电话来

runCMD(cmd, 1, Player) # or runCMD(cmd, Player, 1) <= looks like they are in the wrong order

当您尝试此操作时会发生什么情况?是否会出现异常?如果是,请打印堆栈跟踪,以便我们可以帮助您进行调试。另外,您不是想将
cmd
传递到
runCMD
?当您调用
runCMD(0,1,Player)时,不应该是
runCMD(cmd,Player,0,1)
,还是什么
0
代表
cmd
参数,但是在
命令中没有这样的键。你期望
0
做什么?啊!就是这样!我总是碰巧忽略了一些简单的事情。谢谢。@DarkWarez:比一个解决方案更重要的是学习调试技能。最简单的解决方案是是一个词:
print
print(obj)
print(repr(obj))
print(type(obj))
,等等。新来者会有一些懈怠,但如果你不表明你已经做了排除明显问题的工作,你会发现问题将开始被否决。对此,我很抱歉,我只是尽量不发布所有代码,而是在代码中占据整页。不过,谢谢你的提示。
runCMD(cmd, 1, Player) # or runCMD(cmd, Player, 1) <= looks like they are in the wrong order
def runCMD(cmd, Player, *args):
    Commands[cmd](Player, *args)

def main(Player): #Main function
    Player.dead = False
    while(Player.dead == False):
        cmd = input(">> ")

        if isValidCMD(cmd):
            runCMD(cmd, Player, 0, 1)
        else:
            print("Please enter a valid command.")