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
相关产品推荐
相关产品推荐

