Kivy框架中Screen子类的__init__函数未调用问题求助
问题解决方案
核心错误:初始化方法名拼写错误
你把类的初始化方法写成了__int__,但Python中类的构造初始化方法是__init__。__int__是用于将对象转换为整数时触发的特殊方法,实例化类时根本不会调用它,这就是为什么你加的print语句没输出、代码逻辑没执行,甚至里面的无意义字符串和返回值都没报错——因为这个方法从始至终没被运行过。修复步骤
- 把方法名从
__int__改成__init__ - 移除
return 1 + 1:__init__方法不允许返回非None的值,否则会触发TypeError - 删除或定义
wadwaduhawuhdawudh:这个是未定义的变量,运行时会触发NameError
- 把方法名从
修复后的代码示例:
class Some(Screen): def __init__(self, **kwargs): super(Some, self).__init__(**kwargs) self.layout = MDBoxLayout() self.layout.add_widget(Label(text='somEWHIoihat')) self.add_widget(self.layout)
- 补充说明
实例化时能正常创建对象,是因为你的类继承了Screen,而Screen本身有默认的__init__方法,所以Python会调用父类的初始化逻辑,不会报错,但你自己写的UI组件添加逻辑完全没执行,导致屏幕无内容。
内容的提问来源于stack exchange,提问作者VIshvesh
相关产品推荐
相关产品推荐

