其他分享
首页 > 其他分享> > 16、模块优先级和包

16、模块优先级和包

作者:互联网

一、循环导入问题

解决方案:
方案一:导入语句放到最后,保证在导入时,所有名字都已经加载过
方案二:导入语句放到函数中,只有在调用函数时才会执行其内部代码

二、 搜索模块的路径与优先级

模块其实分为四个通用类别,分别是:
1、使用纯Python代码编写的py文件
2、包含一系列模块的包
3、使用C编写并链接到Python解释器中的内置模块
4、使用C或C++编译的扩展模块

在导入一个模块时,如果该模块已加载到内存中,则直接引用,否则会优先查找内置模块,然后按照从左到右的顺序依次检索sys.path中定义的路径,直到找模块对应的文件为止,否则抛出异常。sys.path也被称为模块的搜索路径,它是一个列表类型

重要结论:
如果被导入的模块是在被执行程序所在的文件夹下,那么无需处理环境变量,以执行程序所在的文件夹为起始点进行。
 
强调:
1、导入语句中的点代表的是路径分割符
2、使用语句中的点代表的是向某一个名称空间要名字

三、软件开发的目录规范

bin:放执行程序
conf:放配置文件,一些定制化的东西 日志等
core:放核心代码,一些被导入的文件功能
lib:自定义自己的模块(库)
logs:存放日志
db:放数据,登录密码等
readme:说明手册
import time
time.strftime("%Y-%m-%d %H-%M-%S")
年月日 时分秒

 

标签:-%,语句,路径,优先级,16,执行程序,导入,模块
来源: https://www.cnblogs.com/daishenmin/p/15424188.html