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

Kivy类内函数赋值全局变量报错,无法更新已定义全局变量

全局变量赋值语法错误修复及更新方法

你遇到的SyntaxError是因为Python中global关键字的使用规则:不能在声明全局变量的同时直接赋值,必须先单独声明变量为全局作用域,再执行赋值操作。

修正后的代码

def callback1(self, instance):
    global day, day_type, split  # 先声明要操作的全局变量
    day = self.user1.text
    day_type = self.user2.text
    split = self.user3.text
    current_day = ExcelEdit.split_def_start(day, day_type)
    Workout_app.screen_manager.current = "Input"

关键说明

  • global day, day_type, split 这行代码明确告诉Python解释器:函数内部使用的这三个变量是来自全局作用域的,而非函数局部变量。
  • 声明完成后,再分别对变量赋值,就能正确更新类外部定义的全局变量了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 04:24:13