我的Python心路历程 第十一期 (11.2 初探python调试总结之互相import引发的AttributeError问题)

背景

今日我的Python心路历程是 初探python调试总结之互相import引发的AttributeError问题)

分析

最近在编写Python脚本过程中遇到一个问题比较奇怪:Python脚本完全正常没问题,但执行总报错"AttributeError: 'module' object has no attribute 'xxx'"。异常如图所示:
在这里插入图片描述
在这里插入图片描述

仔细看了下,存在奇诡的同名.pyc文件,删除一个后依然有问题,后来网上找了资料确定是.pyc文件导致的,故此搜索发现有多个.pyc文件,删除所有后问题得到解决。
在这里插入图片描述

回头想想,只要互相import就会出来同名.pyc文件,调试时值得关注这种情况。但更让人琢磨不透的是,通过删除同名.pyc文件并非根本之道,因为后面又出现了,而且这种方法不生效了。

方案

通过查阅一些资料,发现互相import需要有些注意实现,其中之一就是要将调用的代码放在if __name__ == '__main__':中,代码如下所示:

if __name__ == '__main__':

    # 在状态栏目添加系统时钟功能
    function.time_clock()

这样就从根本上解决了这个问题,试了多次编译都没有错误。

参考:
1、我的Python心路历程 第十一期 (11.1 初探python调试总结之基础篇)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值