类问题中的python字典变量

时间:2015-09-21 18:10:19

标签: python dictionary

我遇到的问题是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

0 个答案:

没有答案