1 模块简介
在python中常见的模块有三种,在python解释器中的内置模块,第三方模块和自定义模块。模块的有使用python编写的文件,有已被编译为共享库或DLL的C或C++扩展,也有使用C编写连接到python解释器的内置模块和把一些列模块组织起来的文件(文件包)。
python使用模块内置模块,第三方模块以及内置模块,是python的一大特点。大大提高了开发效率。使用自定义模块使开发效率大大提高。自定义模块也可以减少代码冗余。
2 模块导入
python中使用模块,必须明白执行文件和被导入的模块。
导入模块有两种方法 import 模块名 和 from 模块名 import 模块内的对象。首先在pycharm中同级文件夹下创建两个文件,例如start.py和m1.py文件。在m1文件内写下面代码。这是使用import+模块名的方法导入,这种方式执行文件start,被执行文件m1。start在使用m1中的变量时,需要加前缀模块名.使用对象。这种指名道姓,不会与start文件相同名字的变量冲突。
# m1文件中的代码 def func(): print('from 01 of func') # start文件中的代码 import m1 # 导入m1文件 m1.func() # 执行m1文件中的函数function() >>>from 01 of func
在上面的模块调用,实质上经历三个步骤。第一步在start文件内创建一个模块的名称空间,第二部执行m1文件中的代码,将执行过的代码放在m1的名称空间。第三步继续执行start的代码,执行到m1.func()。执行该函数在m1中的代码。
如过被执行文件名过于繁杂,还可给被调用文件名起个别名。import 模块名 as 别名。在下面需要调用该文件是。前缀名可以用别名来替代。此外,import可以同时导入多个模块,在每个模块名用逗号隔开即可。但不建议使用,因过多的模块,使程序读取来不清晰。
# 使用from 模块名 import 模块内的对象 from m1 import func func() >>>from 01 of func
这是另一种导入模块的方法,这种方法可以精准的导入m1文件内的变量对象。在使用时可以直接使用,但是执行文件有相同变量名,在执行时会有冲突。
需要注意的是,执行文件对模块的搜索优先级是首先搜索内存中的模块,就是内置空间的模块,最后sys.path中的模块。文件被导入都是参考执行在sys.path的位置。
文件导入有绝对导入和相对导入。以执行文件的在sys.path中的位置查找导入称之为绝对导入,执行文件与被导入的模块中都可以使用。相对导入是当前所在文件位置查找。.代表当前所在文件的文件加,..代表上一级文件夹,...代表上一级的上一级文件夹。使用方便,但不能在被执行文件使用。
# 在被执行文件打印 print(__file__) >>>main # 被调用时 >>>m1 #模块名
软件开发目录规范
软件开发目录规范在一个项目文件夹下分文件夹做项目。一个项目开发下的子文件夹大致有者八个文件:1,bin文件夹,这个文件内有装有项目启动文件(start)。2, conf文件夹,这个文件夹下装配置文件(setting)。3, lib文件,装有公共功能的文件(common)。4,core文件夹,装有核心逻辑的文件(src)。5,log文件夹装有日志。7,db文件,装有数据文件。8,Readme文本文件,对项目的说明都可以写在这里。