我正在制作一个小文本RPG来帮助我学习Python语言,并且我试图从一系列名称中创建一个类的多个实例。在
我有一类敌人(命名为:敌人),想在一个时间创造1到3个“地精”敌人。在
class Enemy:
def __init__(self, health):
self.health = health
到目前为止,我解决这个问题的方法是使用for循环遍历字母“a”、“b”和“c”,并附加一个敌人列表。在
^{pr2}$这给了我三个小妖精的名单:
['goblina', 'goblinb', 'goblinc']
以“新加入的哥布林的名字”为例:“每一个哥布林都想创建一个新的敌人名单…”goblinb=敌人(10个)
但是,当我尝试使用多种方法创建实例时,包括以下方法(这可能是绝对错误的方法):
for i in range (1, 3):
enemylist[i] = enemy(10)
我得到的只是一个名为enemylist[i]
的实例。在
有人能帮帮我吗。就像我说的,我对这门语言还不熟悉,所以请对我的解释温和一点,但我学习速度很快,愿意阅读和研究。在
我花了2天的大部分时间(断断续续地)试图弄清真相,却找不到有效的解决办法。在
也许将敌人的名字保留为
Enemy
类的成员会更有意义:在不知道如何利用敌人的情况下,很难提出建议。如果你想通过名字来查找敌人,字典是一种更好的存储敌人的数据结构:
^{pr2}$我认为在类中添加一个名称是很好的,但是创建一个具有相同名称的键的dict,同时将名称和运行状况存储为dict值似乎有点多余(如上面的答案所示)。在
这将为您提供一个名称进行访问。您仍然可以将敌方类的每个实例存储在一个列表中,如果愿意,可以使用列表理解(或任何其他列表创建):
^{pr2}$现在您有一个列表敌人,由三个实例化的敌人类对象组成,它们有一个可以访问的名称。例如
会回来戈布丽娜和
将返回True。在
相关问题 更多 >
编程相关推荐