我正在开发一个基于文本的小游戏,但我在创建这个列表时遇到了麻烦Food
,我想把我所有的Food
(汉堡或热狗)都放在listOfFood
. 在我的示例中,我只包括了两个,但它们都是以食物为基础的。
稍后我将遍历我listOfFood
的做某事。我抽象了我的代码来提问(因为它有太多行,而其他信息与它无关)。
class Food():
def __init__(self):
self.name = 'Food'
class HotDog(Food):
def __init__(self):
Food.__init__(self)
class Burger(Food):
def __init__(self):
Food.__init__(self)
def createFoodList(myOrders):
# A list that contain all the food (either Burger or Hotdog)
listOfFood = []
# Depend what is the type of the food, create that many food object
# and then append it to the list of food
if myOrders[0][0] == 'HotDog':
for number in myOrder[0][1]:
listOfFood.append(HotDot())
if myOrders[0][1] == 'Burger':
for number in myOrder[0][1]:
listOfFood.append(Burger())
return listOfFood
todayOrders = [['HotDog', 10], ['Burger', 5]]
print(createFoodList(todayOrders))
我想知道是否可以使用列表理解或类似方法来使我的createFoodList
功能更好?因为我的想法是有很多不同的种类Food
,所以如果我可以返回这个食物列表,基于todayOrders
列表['type of food', count]
并返回[food, food, food.. ]
。我现在做的方式真的很复杂很长(我感觉这不是正确的方式)。
非常感谢。
编辑:除了列表理解之外,我还能做些什么来替换 if 语句createFoodList
?这是决定的[[food, count], [food, count]..]
,我创建了那个食物并将它附加到我的列表中。