Python 无法识别以下错误:TypeError:object.\uuuu init\uuuu()只接受一个参数(要初始化的实例)

Python 无法识别以下错误:TypeError:object.\uuuu init\uuuu()只接受一个参数(要初始化的实例),python,kivy,mobile-application,Python,Kivy,Mobile Application,我对编程非常陌生,目前正在跟踪一段视频,为一个项目开发一个应用程序。我似乎不明白是什么导致了下面的错误 TypeError: object.__init__() takes exactly one argument (the instance to initialize) 守则如下:;第一档 class MainApp(App): my_friend_id = 1 def build(self): return GUI def on_start(sel

我对编程非常陌生,目前正在跟踪一段视频,为一个项目开发一个应用程序。我似乎不明白是什么导致了下面的错误

TypeError: object.__init__() takes exactly one argument (the instance to initialize)
守则如下:;第一档

class MainApp(App):
    my_friend_id = 1
    def build(self):
        return GUI

    def on_start(self):
        # get database data
        result = requests.get("https://wearable-balance-belt1-default-rtdb.firebaseio.com/" + str(self.my_friend_id) +".json")
        data = json.loads(result.content.decode())
        # get and update avatar
        avatar_image = self.root.ids['home_screen'].ids['avatar_image']
        avatar_image.source = "icons/" + data['avatar']

        banner_grid = self.root.ids['home_screen'].ids['banner_grid']
        workouts = data['workouts'][1:]
        for workout in workouts:
            W = WorkoutBanner(workout_image=workout['workout_image'], description=workout['description'])
            banner_grid.add_widget(W)


    def change_screen(self, screen_name):
        # get the screen manager from the kv file
        screen_manager = self.root.ids['screen_manager']
        screen_manager.current = screen_name
        # screen_manager = self.root.ids


MainApp().run()
和第二个文件

from kivy.uix.gridlayout import GridLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
from kivy.uix.image import Image

class WorkoutBanner(GridLayout):
    rows = 1

    def __init__(self, **kwargs):
        super(WorkoutBanner, self).__init__(**kwargs)

        #left floatlayout
        left = FloatLayout()
        left_image = Image(source="icons/" + kwargs['workout_image'], size_hint=(1, .8), pos_hint={"top": 1, "left": 1})
        left_label = Label(text=kwargs['description'], size_hint=(1, .2), post_hint={"top": .2, "left": 1})
        left.add_widget(left_image)
        left.add_widget(left_label)

        self.add_widget(left)

如果我能得到任何帮助,我将不胜感激

该错误通常是由于传递给基本对象类\uuuu init\uuu方法的意外参数造成的。在您的例子中,workout_image和description关键字参数将传递给super类,并最终传递给object类。在WorkoutBanner的uuu init_uuuu方法中调用super之前,可以使用kwargs.pop删除这些参数来纠正这一点。更简单的方法是为这两个参数定义属性,并让kivy处理保存和从kwargs中删除它们的操作,如下所示:

class WorkoutBanner(GridLayout):
    rows = 1
    workout_image = StringProperty('')
    description = StringProperty('')

    def __init__(self, **kwargs):
        super(WorkoutBanner, self).__init__(**kwargs)

        #left floatlayout
        left = FloatLayout()
        left_image = Image(source="icons/" + self.workout_image, size_hint=(1, .8), pos_hint={"top": 1, "left": 1})
        left_label = Label(text=self.description, size_hint=(1, .2), pos_hint={"top": .2, "left": 1})
        left.add_widget(left_image)
        left.add_widget(left_label)

        self.add_widget(left)

非常感谢你,它成功了!!