add_food() 恰好接受 1 个位置参数(给定 2 个)

add_food() takes exactly 1 positional argument (2 given)

下面是我的代码:

class Food(object):

    def __init__(self,name,calories,foodID):
    self.__name = name
    self.__calories = calories
    self.__foodID = foodID

    def __str__(self):
        return "{} ({} cal)".format(self.__name,self.__calories,self.__foodID)      

    #ACCESSOR VARIABLE

    def get_foodID(self):
        return self.__foodID

    def get_foodCalories(self):
        return self.__calories

class Meal(object):

    def __init__(self):
        self.__food_list = []

    def add_food(food):
        self.__food_list.append(food)

chs = Food("cheese", 80, 12345)

meal = Meal()
meal.add_food(chs)

这顿饭class应该只有一个属性;一个列表。 add_food() 方法应该将 Food 参数添加到 Meal 中。它告诉我我给出了 2 个参数,但我看不到哪里

谢谢

您的 add_food 方法中缺少 self

改变这个:

def add_food(food):

至此

def add_food(self, food):