我遇到的问题是python将两个不同的变量视为一个......
我有一堂课......在那堂课里有各种各样的词典......其中一本词典叫做“延迟”。它有5个变量:a'主要武器'延迟,支持武器'延迟,这两者的组合延迟,然后是乘数有效延迟,第二级乘数有效延迟,然后是实际的有效延迟'那个角色会有。
我选择这样做的原因是我希望能够使用player.Delay [n]来代替player.delay1,player.multdelay,player.total_delay等。它可以作为打算用于我目前所需要的。
输入问题。
我目前正在编写一个旨在实际上是'战斗的模块。逻辑。所以它从一个不同的.py中导入了类def,并进行了一场“斗争”。因此,对于测试,我有一个名称/主要检查,我可以进行设置,然后测试它们没有主程序中的所有多余的东西。
我的设计理论只是让两个玩家' (表示为字符类变量,CharClass())并将它们填充到字典中。因此,如果我想做超过2名战斗员,我可以只是玩家[5],玩家[10]等,现在它应该是玩家[0]和玩家[1]。当我设置一个独立变量时,它工作正常(即播放器[n] .name),但由于某种原因,如果我尝试在数组(字典)中设置变量,使用:
player[0].Delay[4] = 5
player[1].Delay[4] = 15
运行时,player[n].Delay[4]
都是15
。
如果我只是废弃字典的想法并做:
player[0].Delay = 5
player[1].Delay = 15
它有效。但这并没有达到我的需要。在我记得之前,我从未遇到过这个问题。而且我已经用字典做了一些LLLLLoooottt。也许我会过度思考某些东西,或者只是对某些东西一无所知,但无论如何我都被卡住了...我已经绞尽脑汁看着这个30分钟了,我只是不知道看看问题是什么。我只需要一些新鲜的眼睛来告诉我它是什么。
if __name__== "__main__":
#print "This is a module. It's not intended to be run by the user."
player = []
player.append(CharClass())
player.append(CharClass())
player[0].name="Player 1"
player[1].name="Monster"
player[0].tDelay = 0
player[1].tDelay = 0
player[0].Target = 1
player[1].Target = 0
player[0].Delay = 50 #This block 'works' in that it treats player[n's] separatly.
player[1].Delay = 30
player[0].Delay[4] = 50 #but This block sets both player[n].Delay[4]'s to 30
player[1].Delay[4] = 30
print player[0].Delay,player[1].Delay
print player[0].tDelay,player[1].tDelay
#start()
以下是CharClass()编码的部分内容,但为了清楚起见,请记住它是从不同的.py导入的。
class CharClass():
name = ""
HP = 100
LVL = [99, 0]
base_combat_stats = []
Delay = [0,0,0,0,0] #wpn1,wpn2, combined, DW adjusted, Haste adjusted, combat_effective_delay