0

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

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

Commands = { #In-game commands
    'help': help,
    'stats': stats,
    'exit': exit
    }

def isValidCMD(cmd):
    if cmd in Commands:
        return True
    return False

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(0, 1, Player)
        else:
            print("Please enter a valid command.")

charactercreation()
main(Player)
4

1 回答 1

1

你应该打电话

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

无论如何,它们的第一个参数runCMD需要是其中的键之一Commands

可能您的意思是在args. 那么你需要*在里面放一个

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.")
于 2013-10-21T03:38:07.650 回答