Python报UnboundLocalError: local variable 'xxx' referenced before assignment

score_you = 0
def kickedBall(shooter, goalkeeper):
     score_you += 1
kickedBall("myNanme", "com")

执行此代码报UnboundLocalError: local variable 'score_you' referenced before assignment
原因:在函数内部对变量赋值进行修改后,该变量就会被Python解释器认为是局部变量而非全局变量,当程序执行到 score_you = score_you + 1的时候,想当于执行score_you = score_you + 1,此操作是给score_you 赋值,score_you 则被认为是局部变量,此时score_you + 1,解释器在函数内部找不到score_you 的定义,自然报错
解决方式:在函数内部,给变量添加global修饰符,声明此变量为全局变量

score_you = 0
def kickedBall(shooter, goalkeeper):
    global score_you
    score_you += 1
kickedBall("myNanme", "com")

运行,OK

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,522评论 18 399
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,323评论 17 410
  • 首先来看两段代码以及代码的执行结果: 代码一: 执行结果: ** UnboundLocalError: local...
    东直门吹风阅读 27,416评论 1 3
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,750评论 0 38
  • Scala与Java的关系 Scala与Java的关系是非常紧密的!! 因为Scala是基于Java虚拟机,也就是...
    灯火gg阅读 8,835评论 1 24

友情链接更多精彩内容