我有一个类(机器人),它有一个属性“健康”;因为这个类有很多参数,我希望用户输入很多,我选择循环访问 {param:explanation} 的字典,并为每个参数输入一个值来设置。
attr_array = ["health",...]
attr_dict = {}
attr_dict["health"] = "your bot's health"
...
for attr in attr_array:
tmp_attr = input(attr + attr_dict[attr] + ": ")
setattr(tmp_bot, attr_dict[attr], tmp_attr)
print attr, getattr(tmp_bot, attr_dict[attr])
print str(tmp_bot.health) + " hp"
因此,打印 attr、getattr... 行返回(示例)“health 50”但是,打印 str 行返回“0 hp”
发生这种情况有什么原因吗?