Python中出现UnboundLocalError: local variable ‘xxx‘ referenced before assignment情况的解决方法

博客指出在函数外部定义变量,在函数内部运算时会出现UnboundLocalError错误,原因是解释器不清楚变量是全局还是局部变量,其他模块声明本模块使用时也会出现。解决方法有两种,一是用global关键字声明为全局变量,二是在函数内初始化作为局部变量。

 

UnboundLocalError: local variable 'xxx' referenced before assignment

在函数外部已经定义了变量n,在函数内部对该变量进行运算,运行时会遇到了这样的错误:主要是因为没有让解释器清楚变量是全局变量还是局部变量。有时候在其他模块声明该变量,在本模块使用时也会出现。

那么问题就来了,出现这个问题我们就要考虑程序是按照全局变量,就是经过函数运算到函数外面还生效,还是按照局部变量在函数外生效。

第一种,当全局变量来看,就是使用global关键字,在函数内部先声明a这个变量是全局变量。

def    func():
'''声明'''
    global a;
'''主体'''
    ...
    ...

 

第二种是当局部变量。就是这个变量只在函数内使用,那么只要在函数内把这个变量定义一下就行了(即对变量进行初始化)。

def    func():
'''初始化'''
    a = 0;
'''主体'''
    ...
    ...

 

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值