在循环中动态实例化Player类

时间:2011-01-20 23:49:17

标签: python list loops

我正在制作一个简单的Python游戏。我有一个文本文件,每行都有以下内容:

player name, player IP, player health, player items

我有一个循环遍历文件中的每一行并获取每个玩家的变量(文本文件中的每一行都是一个玩家)。

我有一个名为Player的类,我需要为每个玩家提供一个这样的实例。我希望有一个包含Player的所有实例的列表。

2 个答案:

答案 0 :(得分:1)

Sven有一个很好的答案,但你甚至可以取消第一行而只是做

config = [line.split(',') for line in open("config")]

或者您可能想要实际实例化玩家:

config = [Player(line.split(',')) for line in open("config")]

如果您要为游戏做更多csv配置,请查看csv模块。

答案 1 :(得分:0)

您需要做的是使用map函数调用构造函数并将您在配置文件中读取的内容扩展为实例化的参数:

players = map(lambda tuple_args: Player(*tuple_args), (line.split(',') for line in open("config"))) 

使用列表理解更简单:

players = [Player(*(line.split(','))) for line in open("config")]