【九月打卡】第20天Python第七章包、模块、函数与变量作用域
2022/9/25 3:17:10
本文主要是介绍【九月打卡】第20天Python第七章包、模块、函数与变量作用域,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:全面系统Python3.8入门+进阶(程序员必备第二语言)
课程章节:7-10 包与模块的几个常见错误
主讲老师:7七月
课程内容:
今天学习的内容包括:
包与模块的几个常见错误
课程收获:
包和模块不会被重复导入
避免循环导入:
以下就是一段循环导入代码,执行后我们会发现python提示了报错。
我们把p2里面的from import注释掉后再执行,就发现报错没有了,且执行成功了。
分析:为什么from p2 import p2的时候会报错。再执行p1语句的时候,他最上面那条语句是从p2的包里导入p2的变量,from p2将会让python去执行p2的这个模块,刚好在p2的第一行他又一次的去引用p1。这样就形成了一个循环。
循环引用是非常不好的一种设计方式。循环引用是绝对不可以去运行的。
间接循环引入:
所以说有时候这样一个循环引用不是很容易被我们发现。
如果我们把p4里面from p1 import p1给注释掉。就可以成功打印结果2来了。所以当你觉得一个模块里面的代码没有问题的时候,你就要去看一下其他模块,看一下他的引用链是不是产生了这样一个循环引入。因为我们可以看到python并没有直接给我们报错提示到他是一个循环问题。但我们可以从他的调用链上看出来的。
另一种:
修改代码后执行,结果打印出了2。我们明明运行的是p1,但p1里面并没有print语句,为什么会吧p2里面的变量给打印出来?
python一旦去导入一个模块的时候,就会去执行这个模块里的所有代码。因为在p1里他导入了p2这个模块,他导入之后就会去执行p2模块里面的代码,也会吧print这条代码给运行起来。然后就把p2这个变量给打印出来。
强调:无论你在一个应用程序里导入多少次p2或某一个模块,p2导入过程中只会执行一次。
这篇关于【九月打卡】第20天Python第七章包、模块、函数与变量作用域的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享