py 包和模块,软件开发目录规范
什么是包?
- 包指的是内部包_init_.py的文件夹
包的作用:
- 存放模块,包可以更好的管理模块
什么是模块?
- 一些列功能的结合体
- 相当于模块包着一堆函数与代码
- 模块本质上是一个.py文件
模块的三种来源:
-
python内置的模块:(python解释器)
比如:sys\time\os\turle
-
第三方模块:(别人写的)
比如:requests
-
自定义模块:(自己写的)
比如:自己定义的demo.py文件
模块的四种表现形式:
1.使用python编写的py文件。(了解)
2.编译后的共享库DLL或者是C或者C++库。(了解)
3.包下面带有__init__.py的一组py文件。
- py_demo
- __init__.py
- demo.py
- demo2.py
4.python解释器下的py文件。
- python解释器下的文件夹
- 一个个的py文件
为什么要使用模块?
模块可以帮我们更好地管理功能代码,比如: 函数..…
可以将项目拆分成一个个的功能,分别存放在不同的py文件(模块)中。
如何创建,编写模块,并使用模块?
- 鼠标右键创建py文件
- 在py文件编写python代码
- 在一个文件中,通过import关键字导入模块
import 模块名
# 注意: import 模块时,模块不能加.py后缀
模块在导入时发生的事情:
1.会先执行当前执行文件,并产生执行文件中的名称空间。
2.当执行到导入模块的代码时,被导入的模块会产生一个模块的名称空间。
3.会将被导入模块的名称空间加载到内存中。
给模块起别名 as
import 模块 as 模块的别名
- 模块的导入方式
- import 模块
- 在执行文件中直接import导入
- from 包/模块 import 模块/(函数名、变量名、类名)
- 在执行文件中直接import导入
循环导入问题:
- model1.py
from model2 import name
name = 'jason'
- model2.py
from model1 import name
name = 'tank'
解决循环导入问题:
1.需要查找的名字放在导入模块的上方
2.在函数内部导入,将模块变成函数名称空间中的名字
软件开发目录规范
conf:用于存放配置文件的文件夹
core:核心业务代码
interface:接口,接口内写获取数据前的逻辑代码,用过后才能获取数据
db:用于存放文件数据
lib:存放公共功能文件
log:用于存放日志文件,日志用于记录用户的操作记录
bin:里面存放启动文件 / 启动文件
readme.txt:项目说明书,用户告诉使用者项目的操作