def distToPlayers(self, list):
self.playerlist = list
returnls = []
for i in self.playerlist:
if distance(self.playerlist[i].xpos , self.playerlist[i].ypos) <= self.playerlist[i].catchRadius:
returnls.append(self.playerlist[i])
self.playerlist[i].caughtBall = True
return returnls
其中distance()只是一个提供值的函数,list是对象实例的列表,如receiver1。因此,receiver1有xpos和ypos这样的统计信息,这个函数查看输入的列表中的所有玩家,计算他们到self对象的距离,并返回运行该函数的对象在其捕获半径内的玩家列表。
我的问题是:我该怎么做?我的代码给了我一些奇怪的错误,比如“列表索引必须是int,而不是objects”。我的列表索引不应该是对象,那些索引处的内容应该是对象,但不管怎样,也许这不是你应该做的事情。如果有人知道怎么做,请告诉我!
我还想输入一个字符串列表,这些字符串是我想谈论的对象的名称(因此我要输入:
球衣(['receiver1','deffack1'等…]),而不是球衣([receiver1,defback1])。然后,我将这些字符串转换为函数中的对象名。我知道你可以把字符串转换成int和float,反之亦然,比如int(x)或str(x)。有没有办法从字符串到对象实例?我试过obj(x)和object(x),但似乎都不起作用。