UnboundLocalError: local variable 'XXX' referenced before assignment

转载 2015年11月17日 22:30:42

这个问题很囧,在外面定义了一个变量 xxx ,然后在python的一个函数里面引用这个变量,并改变它的值,结果报错local variable 'xxx' referenced before assignment,代码如下:

 

  1. xxx = 23  
  2. def PrintFileName(strFileName):   
  3.     if xxx == 23:  
  4.         print strFileName  
  5.         xxx = 24  
  6.   
  7. PrintFileName("file")  

 

      错误的意思就是xxx这个变量在引用前还没有定义,这上面不是定义了么?但是后来我把xxx = 24这句去掉之后,又没问题了,后来想起python中有个global关键字是用来引用全局变量的,尝试了一下,果然可以了:

 

  1. xxx = 23  
  2. def PrintFileName(strFileName):  
  3.     global xxx  
  4.     if xxx == 23:  
  5.         print strFileName  
  6.         xxx = 24  
  7.   
  8. PrintFileName("file")  

 

      原来在python的函数中和全局同名的变量,如果你有修改变量的值就会变成局部变量,在修改之前对该变量的引用自然就会出现没定义这样的错误了,如果确定要引用全局变量,并且要对它修改,必须加上global关键字。

python的UnboundLocalError: local variable 'xxx' referenced before assignment

From:  一、意思:     本地变量xxx引用前没定义。 二、错误原因     在于python没有变量的声明 , 所以它通过一个简单的规则找出变量的...
  • JoeBlackzqq
  • JoeBlackzqq
  • 2014年06月27日 16:38
  • 29599

【Python】UnboundLocalError: local variable 'x' referenced before assignment

内部函数,不修改全局变量可以访问全局变量内部函数,修改同名全局变量,则python会认为它是一个局部变量在内部函数修改同名全局变量之前调用变量名称(如print sum),则引发Unbound-Loc...
  • u013027996
  • u013027996
  • 2014年11月05日 18:09
  • 1802

UnboundLocalError: local variable 'c' referenced before assignment

问题代码:def outer(): c = 0 def inner(): c += 1 print 'inner' print c ...
  • tymatlab
  • tymatlab
  • 2017年11月15日 23:29
  • 54

【Python基础】之全局变量(UnboundLocalError: local variable referenced before assignment)

count = 0 def function(): count = count + 1 print(count) Then we get: UnboundLocalErr...
  • Derek_yuli
  • Derek_yuli
  • 2013年07月14日 22:07
  • 2828

全局变量报错:UnboundLocalError: local variable 'l' referenced before assignment

总结: 内部函数,不修改全局变量可以访问全局变量内部函数,修改同名全局变量,则python会认为它是一个局部变量在内部函数修改同名全局变量之前调用变量名称(如print sum),则引发Unbou...
  • my2010Sam
  • my2010Sam
  • 2014年01月01日 16:35
  • 49220

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

我们编写Python的时候,有时会遇到这种情况:明明在函数外部已经定义了变量n,在函数内部先把该值打印出来,然后再使该变量自增,运行时却遇到了这样的错误: UnboundLocalError: lo...
  • onlyanyz
  • onlyanyz
  • 2015年04月12日 14:20
  • 19902

全局变量报错:UnboundLocalError: local variable 'l' referenced before assignment

总结: 内部函数,不修改全局变量可以访问全局变量内部函数,修改同名全局变量,则python会认为它是一个局部变量在内部函数修改同名全局变量之前调用变量名称(如print sum),则引发Un...
  • fangxuejiang
  • fangxuejiang
  • 2015年08月06日 15:36
  • 376

【Python异常】UnboundLocalError: local variable 'xxxx' referenced before assignment

UnboundLocalError: local variable 'englishneme' referenced before assignment这句话是说引用局部变量前要分配。我在提取格式化列...
  • alanlonglong
  • alanlonglong
  • 2017年07月19日 00:03
  • 105

常见的local variable 'x' referenced before assignment问题

def fun1(): x = 5 def fun2(): x *= 2 return x return fun2() 如上代码,调用fun1...
  • zhuzuwei
  • zhuzuwei
  • 2017年10月14日 15:52
  • 286

local variable 'xxx' referenced before assignment

      这个问题很囧,在外面定义了一个变量 xxx ,然后在python的一个函数里面引用这个变量,并改变它的值,结果报错local variable xxx referenced before ...
  • magictong
  • magictong
  • 2009年08月19日 19:20
  • 101614
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UnboundLocalError: local variable 'XXX' referenced before assignment
举报原因:
原因补充:

(最多只允许输入30个字)