鉴于我需要操作机器,我需要一个 VendingMachine类:
属性是存储食品的库存(清单)。
方法:
构造函数不接受任何参数 get_stock_names():返回表示名称的字符串列表 库存中的所有食品。 load(food):将Food对象添加到库存
和其他人,
#predefined
class Food(object):
def __init__(self, name, nutrition, good_until):
self.name = name
self.nutrition = nutrition
self.good_until = good_until
self.age = 0
def get_name(self):
return str(self.name)
def get_age(self):
return self.age
def get_nutrition(self):
if self.age <= self.good_until:
return self.nutrition
else:
return 0
def ripen(self, days):
self.age = self.age + days
return self.age
def is_spoiled(self):
return self.good_until < self.age
#my code below
class VendingMachine:
def __init__(self):
Property = Food.get_name #no clue how to make a Property
self.load = Food.load #same here
def get_stock_names(self, Property):
lst = []
for i in Food:
i = str(i)
lst.append(i)
return lst
def has_stock(self, name):
return name in Property
def load(self, food):
Property.append(food)
return Property
def sell(self, name):
if name in Property:
Property.remove(name)
return name
else:
return None
我得到的是什么 AttributeError:&#39; VendingMachine&#39;对象没有属性&#39; load&#39; (变量)
答案 0 :(得分:1)
我很确定你误解了你的指示行,告诉你有关stock
财产的信息。我怀疑它只是告诉你创建一个名为self.stock
的实例变量,它包含Food
个实例的列表。由于构造函数不带参数,因此它可能是空的。使用术语“属性”看起来像是一个红色的鲱鱼,因为property
在Python中具有特定的含义(一种使它看起来像属性的方法的包装),这在这种情况下没有多大意义。
无论如何,这就是我认为你想要你的构造函数的样子:
def VendingMachine(object):
def __init__(self):
self.stock = [] # initially empty
您以后的方法可以根据需要检查或操纵self.stock
。