为对象创建随机的唯一变量名

问题描述 投票:0回答:2

我是第一次玩Python和任何编程语言,所以请多多包涵。我两周前开始在线课程,但尝试在旁边开发一个小游戏以学习更快(玩得开心)。这是一次文字冒险,但应随机遇到并与具有随机装备的敌人战斗,然后玩家可以掠夺它们。

这是我的问题:如果我为随机遇到的对象创建随机对象/武器,则需要确保该对象具有唯一的名称。从理论上讲,关卡的设计方式可以是无数个对象(它可以是开放式的,遇到时会弹出)。

这是我到目前为止的方法

class Item_NPCs: #create objects for NPCs

    def__init__(self, item_type, item_number):
    # e.g. item_type 1 = weapons, item_type2 = potions, etc.

        if item_type == 1 and item number == 1:
             self.property1 = 5
             self.property2 = 4

        if item_type == 1 and item_number ==2:

       # etc. :)

def prepare_encounter(): 

    inventory_NPC = [] # empty list for stuff the NPC carries around

    XXX = Class_Item(item_type, item_number) # I might randomize the arguments.   

重要的是,我希望“ XXX”是唯一且随机的,因此没有对象存在一次以上,以后可以放入播放器的清单中。

该怎么做?

python variables random unique names
2个回答
4
投票

为什么您需要随机的?您可以简单地使用一个列表,然后将每个新对象附加到列表中,其索引为其唯一标识符:

items = []
items.append( Class_Item(item_type, item_number) )

但是如果您确实需要随机标识符,也许您可​​以使用字典:

items = dict()
items[random_id] = Class_Item(item_type, item_number)

这要求random_id是可散列的(但如果是数字或字符串,则应为散列。)>


0
投票

我不知道为什么其他人没有想到这一点:

© www.soinside.com 2019 - 2024. All rights reserved.