首页 > 解决方案 > 高效地创建与函数对应的字典键值

问题描述

我将如何创建一个字典,使它的键对应于一个函数。我需要这样做,因为我正在创建一个文本 rpg,并且用户所说的命令当然可以执行。因此,每次我得到用户的输入时,我可以使用用户的输入作为我的字典的键并运行相应的函数,而不是让 20 个 if 语句检查它是否是特定字符串然后为每种可能性运行脚本。我对这样做的第一个想法是这样的:

def attack(enemy):
    ...

def ...


commands = {'attack': attack,
            ...}

但这似乎是写得很糟糕的代码,我重复了我的函数的变量名两次,我最终得到了永远不会使用的函数变量。有没有更好的方法来做到这一点?

标签: python

解决方案


Python 基本上一直是字典,因此有多种方法可以完成您想要做的事情。最直接的方法可能是这样的(注意我把你的函数移到了一个类中):

class Operations:
    def attack(self, enemy): ...

op = Operations()

fn = getattr(op, "attack")
fn(enemy)

推荐阅读