python - 如何调用可以是整数或函数的字典项?
问题描述
我正在尝试编写一个代码,该代码将对桌面游戏中的一个单元进行统计分析以供个人使用。我正在使用字典来存储单位数据,我遇到了一个问题,攻击造成的伤害可以是整数值,也可以是掷骰子“d6”的结果
我创建了一个函数,它取 d6 的值并将其评估为 d(6),然后运行简单的计算来确定平均射击次数 3.5。为方便起见,我希望能够将“d(6)”保留在字典中,而不是为我要输入的每个单位手动转换为 3.5。
在一个非常精简的单元字典示例中,
unit = {'damage':1}
或者
unit = {'damage':'d(6)'}
我正在寻找一种方法来检查“损坏”调用是否该值是一个整数或字符串,然后如果它是一个字符串,则从中去掉引号并将其作为函数进行评估。我在搜索中运气不佳,因为我真的不知道我在搜索什么。
解决方案
使字典中的每个值都保持一致并返回一个您可以调用的 lambda 函数,该d
函数在被调用之前不会被评估。
>>> unit = {'damage': lambda: 1, 'b': lambda: d(6) }
>>> unit['damage']()
1
>>> unit['b']()
result of d(6)
推荐阅读
- c++ - C++中RAM的运行时内存管理
- excel - 根据“n”显示/隐藏行数
- swift - 有没有一种方法可以在“tableView”函数中使用“func startObservingDB()”中的“数据”、“值”和“rowNumber”常量?
- c# - 如何在 Unity 中将对象转换为变换?
- php - php中的ip路由
- python - 枚举熊猫数据框中的行
- ios - 如何将可选类型绑定到非可选类型
- cpu - x86-64 只是 EM64T 的别名?
- visual-studio-code - 如何在 VSC 上运行 GNU-Prolog?
- go - 如何解决gorm many2many error1062