在几个词典中找到价值

时间:2012-09-21 10:15:59

标签: python

首先你只有一本字典,一切都很好

def getNPCName(self,ID):
    return self.npcs[ID].name
然后,得到另一本字典,代码变成了这个

def getNPCName(self,ID):
    for x in (self.npcs,self.deadnpcs):
        if ID in x:
            return x[ID].name 
    return ''

我认为这不是一个好习惯。

应该有一些字典已经存在,它们结合了几个字典,并没有真正合并它们,但就像一些api的字典一样。

self.allnpclist = some_kind_of_dictionary(self.alive,self.dead)

我的代码应该是这个

def getNPCName(self,ID):
    return self.allnpclist[ID].name

我想我不应该自己写

1 个答案:

答案 0 :(得分:0)

我能想到的一般解决方案:

npcs={...}
deadnpcs={...}
undeadnpcs={...}
npc_dicts={'npcs':npcs,'deadnpcs':deadnpcs,...}

def getNPCName(ID):
    for one in npc_dicts:
        choosen_one=getattr(npc_dicts[one],ID,None)
        if choosen_one:
            return choosen_one.name