BUG记录---变量全局域变作用域引发的Bug

场景

对于别人的开源项目,将其主函数改为普通函数的定义。然后在另一个文件夹中在主函数下调用原项目执行的函数(原主函数)。

产生BUG

就直接将原主函数改为普通函数定义,然后直接调用的话,生成的BUG很晦涩,也无法直接地指向真正的BUG所在之处。

如何找到BUG

因为我是要将原主函数定义为一个普通函数,然后调用。但是我现在是跨文件调用了,根据可执行的最小改动去定位BUG所在之处。我就直接在原文件中主函数下调用由原主函数定义来的普通函数。这时产生的报错就很直接明了,直接说明***变量未定义。

解决BUG和反思

解决

依据上一步的报错,在定义该变量位置的上一行使用global ***将其定义为全局变量,BUG解决。

反思

为什么做这样的一个改动,就会产生这样的错误呢?

原因在于python main函数下定义的变量作用域默认为全局。

在我的改动下,原来定义在主函数中的内容变成了在普通函数中定义的变量,而普通函数中定义的变量作用域为局部,从而引发了这样的错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值