我的任務是創建一個硬件籠的模型。每個插槽包含N插槽,每個插槽可能包含或不包含卡。重載列表理解行爲?
我想使用列表對籠子建模。每個列表索引將對應於插槽編號。 cards[0].name="Card 0"
等
這將允許我的用戶通過簡單的列表解析來查詢模型。例如:
for card in cards:
print card.name
我的用戶,這是不復雜的Python用戶,將與實時模型進行交互,所以它是不實際的列表索引不對應於一個人口卡。換句話說,如果用戶取出一張卡片,我需要做一些事情,表明該卡片沒有填充—我的第一個衝動是將列表項目設置爲None
。
Bossman喜歡這個方案,但是他對上面列表的理解並不是瘋狂的,因爲如果缺少一張牌,上面的失敗就會失敗。 (目前的做法。)他甚至不支持要求用戶學習足夠的Python來創建列表理解表達式,該表達式將忽略None
。
我的想法是將list
分類,創建一個newclass
。它會像列表一樣工作,除了for card in cards
只會返回未設置爲None
的成員。
有人請示範如何重載列表類,以便在子類上調用的列表解析將忽略None
? (當我嘗試這樣做時,我的Python技能已經開始崩潰了。)
任何人都可以提出更好的方法嗎?
你能描述一下你的'卡'嗎?他們是字典嗎?類實例? – 2010-08-25 20:29:51