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

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

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

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

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

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

解决Python报错:local variable 'xxx' referenced before assignment(引)

解决Python报错:local variable 'xxx' referenced before assignment(引) (2011-03-03 15:51:23) 转载▼ ...

local variable 'xxx' referenced before assignment

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

django模版local variable 'has' referenced before assignment

views: def common_statistic(request):     '''公共信息     '''     ...     bench_name = query.get(...

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

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

linux文件系统启动流程 ---笔记整理

下面是一张linux启动流程图: 在了解启动流程之前,我们应该先知道系统的几个重要脚本和配置文件,他们对应的路径为: 1. /sbin/init 2. /etc/inittab 3. ...
  • haiwil
  • haiwil
  • 2011年09月09日 14:50
  • 7409

UnboundLocalError: local variable 'l' referenced before assignment

01在程序中设置的sum_Logical属于全局变量,而在函数calculate中没有sum_Logical的定义,根据python访问局部变量和全局变量的规则:当搜索一个变量的时候,python先从...

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

01在程序中设置的sum_Logical属于全局变量,而在函数calculate中没有sum_Logical的定义,根据python访问局部变量和全局变量的规则:当搜索一个变量的时候,python先从...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UnboundLocalError: local variable 'XXX' referenced before assignment
举报原因:
原因补充:

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