You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中能否通过变量的取值动态引用不同的对应变量?

推荐方案:用嵌套字典/对象存储好感度(所有语言通用,易维护)

你要的效果完全不需要手动拼接变量名,用结构化的存储方式反而更稳定,后续扩展角色也不需要改逻辑:

# 以Python为例,其他语言逻辑完全一致
# 第一层key是发起好感判定的角色,第二层key是被评价的角色,值为好感度
opinions = {
    "Adam": {"Betty": 0, "Carmen": 0},
    "Betty": {"Adam": 0, "Carmen": 0},
    "Carmen": {"Adam": 0, "Betty": 0}
}

playerChar = "Adam"
# 赋值直接按动态key取即可
opinions[playerChar]["Betty"] = 20

# 后续判断逻辑也很清晰
if opinions["Adam"]["Betty"] == 20:
    # 触发对应剧情/交互逻辑
    pass

当你把playerChar切换为Carmen时,opinions[playerChar]["Betty"]自动指向Carmen对Betty的好感值,完全符合你的需求。


不推荐的动态变量方案(仅做参考)

如果你确实需要直接生成对应格式的全局变量,不同语言也有对应的实现方式,比如Python可以操作全局变量字典:

playerChar = "Adam"
# 动态生成变量名并赋值
globals()[f"opinion_{playerChar}_Betty"] = 20

# 调用时同样拼接变量名取值
if globals()["opinion_Adam_Betty"] == 20:
    pass

这个方案会在全局作用域生成大量零散变量,后期排查bug、新增角色的成本都很高,除非有特殊限制否则完全没必要用。

如果是其他开发语言,比如C#/JavaScript/Go等,都有对应的字典/映射结构可以实现第一种方案,逻辑完全通用,适配所有游戏引擎的开发场景。


内容的提问来源于stack exchange,提问作者Questionnaire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:27:02