python - 高效地创建与函数对应的字典键值
问题描述
我将如何创建一个字典,使它的键对应于一个函数。我需要这样做,因为我正在创建一个文本 rpg,并且用户所说的命令当然可以执行。因此,每次我得到用户的输入时,我可以使用用户的输入作为我的字典的键并运行相应的函数,而不是让 20 个 if 语句检查它是否是特定字符串然后为每种可能性运行脚本。我对这样做的第一个想法是这样的:
def attack(enemy):
...
def ...
commands = {'attack': attack,
...}
但这似乎是写得很糟糕的代码,我重复了我的函数的变量名两次,我最终得到了永远不会使用的函数变量。有没有更好的方法来做到这一点?
解决方案
Python 基本上一直是字典,因此有多种方法可以完成您想要做的事情。最直接的方法可能是这样的(注意我把你的函数移到了一个类中):
class Operations:
def attack(self, enemy): ...
op = Operations()
fn = getattr(op, "attack")
fn(enemy)
推荐阅读
- c - 为什么我需要双指针?
- laravel - laravel 无法连接数据库
- azure-data-explorer - kusto 如何检查完整列是否没有特定字符串?
- mysql - Right Join 无法返回第二个表中的所有行
- python - 如何将python数据框中前几行的值转换为新列
- reactjs - Nextjs 在脚本中导入包
- javascript - 在类语法和 Object.create 之前,“类”是如何扩展的?
- position - 退出 pine 脚本策略版本交易后的双倍头寸大小(在图表上显示 +- 头寸大小,请参阅附图)
- woocommerce - 如果订单中的商品数量超过 1,如何隐藏取消按钮
- spring - 是否可以将 SecurityConfigurer 应用于多个路径?