2011-01-20 57 views
2

我正在做一個簡單的Python遊戲。我在每一行都有一個文本文件,內容如下:玩家名稱,玩家IP,玩家健康狀況,玩家項目。Python:在循環中動態實例化Player類的最佳方法?

我有一個循環遍歷文件中的每一行並獲取每個播放器的變量(文本文件中的每一行都是播放器)。

我有一個叫做Player的類,我需要爲每個玩家提供一個這樣的實例。

我希望有一個包含Player的所有實例的數組,但我無法弄清楚我該如何做到這一點!這讓我很困惑。

感謝您的閱讀!

回答

1

斯文有一個很好的答案,但你甚至可以與第一線做掉,只是做

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

或者,你可能想實際實例化的玩家:

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

如果」將會爲你的遊戲做更多的csv配置,查看csv模塊。

+0

我不是問如何將數據分割出文件 - 我已經做到了。我在問我如何在循環中爲每個玩家實例化我的課程。 – Tommo 2011-01-20 23:59:46

0

你需要做的是使用地圖功能來調用構造函數並展開在配置文件中讀到的東西作爲實例的參數:使用列表理解

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

或簡單:

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