Python 3.x Python 3类,使用kivy模块

Python 3.x Python 3类,使用kivy模块,python-3.x,class,kivy,Python 3.x,Class,Kivy,我对类没有太多的经验,但我需要用它创建一个项目,所以我不得不这么做。问题是我对“self”失去了兴趣,因为在函数“AddToDo”中,我想从“init”函数附加到列表中,但它说“Button”对象没有“to_dos”属性。那么,我如何在列表中添加“to_dos”?我还需要注意的是,这段代码非常简单 class ToDoList(FloatLayout): def __init__(self,**kwargs): super(ToDoLis

我对类没有太多的经验,但我需要用它创建一个项目,所以我不得不这么做。问题是我对“self”失去了兴趣,因为在函数“AddToDo”中,我想从“init”函数附加到列表中,但它说“Button”对象没有“to_dos”属性。那么,我如何在列表中添加“to_dos”?我还需要注意的是,这段代码非常简单

    class ToDoList(FloatLayout):
    
        def __init__(self,**kwargs):
            super(ToDoList,self).__init__(**kwargs)

            with open('todolist_demo.json','r') as f:
                    data = json.load(f)
                self.to_dos = data

            to_do_but = Button()
            to_do_but.bind(on_press=ToDoList.CreateToDo)  
            self.add_widget(to_do_but)

        def CreateToDo(self):
            but = Button()

            def AddToDo(self):

                self.to_dos.append(9)

            but.bind(on_press=AddToDo)
            self.add_widget(but)

我在自己的项目中包含了这一点,它对我很有效,但在找到AddToDo函数时遇到了困难,所以我将其拉了出来,下面是代码:

    class ToDoList(FloatLayout):
    
        def __init__(self,**kwargs):
            super(ToDoList,self).__init__(**kwargs)

            f = open('todolist_demo.json','r')
            data = json.load(f)

            self.to_dos = data

            to_do_but = Button()
            to_do_but.bind(on_press=ToDoList.CreateToDo)  
            self.add_widget(to_do_but)

        def AddToDo(self):
            self.to_dos.append(9)

        def CreateToDo(self):
            but = Button()
            but.bind(on_press=AddToDo)
            self.add_widget(but)

如果它对您不起作用,我必须要求您放弃完整的代码。

请发布一个。您的AtddToDo看起来很好,但您确实有一个问题,那就是在\u press=ToDoList.CreateToDo上的
应该是
on\u press=self.CeateToDo