You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

两段相似Kivy代码结果不同?TypeError报错如何解决?

Kivy中TypeError: App.run()缺少self参数的问题分析与解决

核心差异分析

官网能正常运行的代码通常是这样的:

from kivy.app import App
from kivy.uix.label import Label

class MyApp(App):
    def build(self):
        return Label(text='Hello World')

if __name__ == '__main__':
    MyApp().run()  # 先实例化App子类,再调用实例方法run()

你的错误代码大概率是直接通过类调用run()方法,比如:

from kivy.app import App
from kivy.uix.label import Label

class MyApp(App):
    def build(self):
        return Label(text='Hello World')

if __name__ == '__main__':
    MyApp.run()  # 错误:直接用类调用实例方法,未传入self参数

两者最关键的差异:

  • 官网代码先创建MyApp类的实例(MyApp()),run()作为实例方法会自动把实例绑定到self参数。
  • 你的错误代码直接用类调用run(),此时run()需要的self参数没有来源,所以抛出缺失参数的错误。

解决办法

  • 修正调用方式:把MyApp.run()改成MyApp().run(),先实例化App子类再调用run()方法。
  • 检查类继承关系:确认你的App子类正确继承自kivy.app.App,避免因继承错误导致方法调用异常。

内容的提问来源于stack exchange,提问作者somesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 18:42:01