Python 使用DictProperty时出现Kivy KeyError

Python 使用DictProperty时出现Kivy KeyError,python,kivy,Python,Kivy,我一直在尝试调试我的一个自定义小部件,但我不断收到相同的错误: KeyError: 'page_text' 以下是我制作的重新创建此bug的测试应用程序的文件: Python文件: import kivy from kivy.properties import StringProperty, DictProperty from kivy.uix.label import Label from kivy.app import App from kivy.lang import Builder B

我一直在尝试调试我的一个自定义小部件,但我不断收到相同的错误:

KeyError: 'page_text'
以下是我制作的重新创建此bug的测试应用程序的文件:

Python文件:

import kivy
from kivy.properties import StringProperty, DictProperty
from kivy.uix.label import Label
from kivy.app import App
from kivy.lang import Builder
Builder.load_file('test.kv')


class MultC(Label):

    chapter = StringProperty()
    page = StringProperty()
    data = DictProperty()

    def __init__(self, **kwargs):
        super(MultC, self).__init__(**kwargs)
        print(self.chapter)
        print(self.page)
        self.data = {"chapter_text": self.chapter, "page_text": self.page}
        print(self.data)


class MainApp(App):
    def build(self):
        return MultC()


MainApp().run()
我的千伏:

<MultC>:
    chapter: "test"
    page: "test2"
    BoxLayout:
        orientation: 'vertical'
        Label:
            text: root.data["chapter_text"]

        Label:
            text: root.data["page_text"]
:
第章:“测试”
第页:“测试2”
盒子布局:
方向:“垂直”
标签:
text:root.data[“chapter_text”]
标签:
text:root.data[“page_text”]
如果我定义
数据
并给它一个有效的字典,我不明白他们的错误是从哪里来的


感谢您提供的任何帮助…

问题是,在解析.kv时,即使是产生错误的字典也是空的。一种可能的解决方案是使用
get()
方法,但这不会实现绑定,但基于正确的语法,其工作原理如下:

<MultC>:
    chapter: "test"
    page: "test2"
    BoxLayout:
        orientation: 'vertical'
        Label:
            text: (root.data).get("chapter_text", "")
        Label:
            text: (root.data).get("page_text", "")
:
第章:“测试”
第页:“测试2”
盒子布局:
方向:“垂直”
标签:
text:(root.data).get(“chapter_text”,“”)
标签:
text:(root.data).get(“page\u text”,即“”)