【发布时间】:2011-01-20 23:49:16
【问题描述】:
我正在制作一个简单的 Python 游戏。我有一个文本文件,每行包含以下内容:
player name, player IP, player health, player items
我有一个循环遍历文件中的每一行并获取每个播放器的变量(文本文件中的每一行都是一个播放器)。
我有一个名为Player 的类,我需要为每个播放器创建一个实例。我希望有一个包含所有播放器实例的列表。
【问题讨论】:
我正在制作一个简单的 Python 游戏。我有一个文本文件,每行包含以下内容:
player name, player IP, player health, player items
我有一个循环遍历文件中的每一行并获取每个播放器的变量(文本文件中的每一行都是一个播放器)。
我有一个名为Player 的类,我需要为每个播放器创建一个实例。我希望有一个包含所有播放器实例的列表。
【问题讨论】:
Sven 有一个很好的答案,但你甚至可以去掉第一行,直接做
config = [line.split(',') for line in open("config")]
或者您可能想要实际实例化播放器:
config = [Player(line.split(',')) for line in open("config")]
如果您要为游戏做更多的 csv 配置,请查看 csv 模块。
【讨论】:
你需要做的是使用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")]
【讨论】: