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)
非常感谢你,它成功了!!