1

まず、辞書が 1 つしかない場合は、すべて問題ありません

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 に対して 1 つの辞書のように機能します。

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

私のコードはこれでなければなりません

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

自分で書かなくてもいいと思う

4

1 に答える 1

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
于 2012-09-21T10:31:35.243 に答える