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

Python自定义函数报UnboundLocalError错误原因咨询

错误触发原因

Python 遵循静态作用域规则,对函数内的变量判定逻辑为:只要函数体内存在对某变量的赋值操作,该变量就会被标记为函数局部变量,解释器不会主动向外层全局作用域查找该变量。

  • 你的mopcom()函数内部存在mop = random.choice(lista)赋值语句,vopcom()内部存在vop = random.choice(lista)赋值语句,因此mop、vop会被分别判定为两个函数的局部变量。
  • 函数执行时,会先运行if lista.index(mop) > lista.index(pivot)/if lista.index(vop) < lista.index(pivot)的判断逻辑,此时局部变量mop/vop还没执行到赋值步骤,没有绑定任何值,尝试读取就会触发你看到的未绑定局部变量错误。
  • 代码中的pivot没有触发同类错误,是因为两个函数内部都没有对pivot做赋值操作,解释器会自动向外层全局作用域查找pivot的值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 02:09:25