对象,列表和我年迈的大脑

时间:2018-02-17 14:12:04

标签: python python-3.x

为了帮助在一次令人讨厌的髋关节事故后进行一些精神康复,我决定尝试用Python编写自己的程序。所以我刚刚开始着手定义函数和类。

我有一个基本的敌人类,允许我创建这样的对象。

enemy01=Enemy("Goblin",10,100,2,5,1,2)

要获得敌人的名字,我可以使用

foe=enemy01.get_enemyName()

我的问题是我想使用一个敌人列表,当我们被杀死时我追加它们和变量'foe'来指代任何敌人在玩。

所以我尝试创建一个敌人对象列表,比如

currentEnemy=[enemy01, enemy02, enemy03]

并做

foe=currentEnemy.....

但我无法确定如何附加.get_enemyName()

我正在尝试这样的事情来连接它

foe=(currentEnemy, ".get_enemyName()")

但是,当我输入'print(foe)'时,我正在尝试的是什么,这将是代码主体中的内容。

我尝试过在网上和这里搜索但是作为一个初学者真的很难把它写成我想要做的事情。也许我只是以错误的方式开始。

我希望我有意义并感谢阅读:) 西蒙

3 个答案:

答案 0 :(得分:2)

你似乎把所有敌人的名单和一个特定的一个变量混为一谈。

这是你能做的:

enemies = [enemy01, enemy02, enemy03]
for currentEnemy in enemies:
   eName = currentEnemy.get_enemyName()
   print('The current enemy is', eName)

稍后您可能会认为创建单个敌人太繁琐,并使用另一个循环:

# create three identical goblins
enemies = [Enemy("Goblin",10,100,2,5,1,2) for _ in range(3)]

答案 1 :(得分:2)

如果你的班级:

class Enemy:
    def __init__(self,name):
        self.name=name
    def get_enemyName(self,):
        return self.name

您已将currentEnemy初始化为:

enemy01=Enemy('Goblin')
enemy02=Enemy('Rhino')
enemy03=Enemy('DR.Octopus')

currentEnemy=[enemy01, enemy02, enemy03]

并且您希望将所有敌人名称列表添加到列表foe中。然后尝试:

foe=[x.get_enemyName() for x in currentEnemy]

print foe

即。 list comprehensions

i= foe.index('Rhino') #find index of Rhino

del[currentEnemy[i]]  #let's kill Rhino

print 'current enemies at play {}'.format([x.get_enemyName() for x in currentEnemy])

答案 2 :(得分:1)

抱歉 - 我的真实愚蠢错误。我刚刚错过了列表索引。

我对它进行了分类

enemylist = [enemy01, enemy02, enemy03]

currentEnemy=enemylist[0]

foe=currentEnemy.get_enemyName()

print(foe)