模块的认知

  • 模块

  • 程序设计目录规范

一、模块

1、什么叫模块

模块就是一系列功能的结合体,将一系列功能放在一起。

模块有三种来源,首先由内置的模块,也就是python解释器自带的,其次就是第三方的模块,别人提前写好的,使用时直接拿来调用即可,最后一种是自定义的,也就是自己写的。

2、模块的四种表现形式

模块可以是python编写的py文件,意味着每一个py文件可以称之为一个模块;模块也可以是已经编译为共享库或DLL的C或C++扩展;模块也可以是把一系列模块组织到一起的文件夹,有init.py文件的文件夹叫做包(一系列py文件的结合体);模块也可以是使用C编写并连接到pytho解释器的内置模块。

3、模块的作用

  使用模块主要有两点好处:

  1、用别人写好的模块(内置或者第三方的)可以极大的提高开发效率

  2、将写的程序的文件模块化,可以便于区分写的程序具有哪些功能,方便程序的调用以及后期的维护与更新

  3、模块的导入 模块在使用前,需要先执行导入模块的操作,模块的导入方法主要有如下两种。

    1、import导入模块

# run.py
 
import md
在run中导入模块md
#md.py
 
print('from the md1.py')
money = 1000
def read1():
  print('md',money)
def read2():
  print('md模块')
  read1()
def change():
  global money
  money = 0
md.py文件(模块)

  右键运行run.py文件首先会创建一个run.py的名称空间。

      首次导入模块(md1.py)。

          1.执行md.py文件。

          2.运行md.py文件中的代码将产生的名字与值存放到md.py名称空间中。

          3.在执行文件中产生一个指向名称空间的名字(md)。

  多次导入不会再执行模块文件,会沿用第一次导入的成果。

    2、from...import...导入模块(与import类似)

  再导入模块前一定要先区分哪个是执行文件,哪个是被导入文件,分清导入模块的路径

  模块的导入路径有绝对路径导入和相对路径导入

    1、绝对导入必须依据执行文件所在的文件夹的路径为准,绝对路径导入无论在执行文件中还是被导入文件中都适用;

2、相对导入可以用.代表当前路径,..代表上一级路径,...代表上上一级路径。相对导入不能在执行文件中使用,相对导入只能在被导入的模块中使用,使用相对导入不需要考虑执行文件在哪,只需要知道模块与模块之间的路径关系。

4、模块的循环导入

模块的循环导入是指模块A导入模块B,模块B也导入模块A。当A模块导入B模块的某个参数或函数时,当该模块或参数定义在模块B导入模块A之后,此时的模块导入会报错,会出现没有定义变量名或函数,名的错误。

循环导入模块在设计程序的时候时不被提倡的,如果出现循环导入模块,说明设计的程序不合理,即使可以通过其它方法解决。应该在设计程序阶段避免出现在这种问题。

循环导入模块的解决方法:

1、将循环导入的句式写在文件最下方

2、在函数内导入模块

5、__name__的用法

在一个文件中,直接调用name时,若文件被当作执行文件执行的时候,name打印结果时main;当玩文件被当作模块导入的时候name打印的结果时模块名,没有.py的后缀。

6、模块的查找顺序

模块的查找顺序分为三步:

1、先从内存中找

2、然后从内存中找

3、最后在sys.path中找(可以理解为在环境变量中查找)

如果三步都没用查找到,则会报错,该模块名不存在

二、程序设计规范

文件目录规范入下所示:

项目名

bin文件夹

start.py(项目启动文件)

conf文件夹

  settings.py(项目配置文件)

core文件夹 

  src.py(项目核心逻辑)

db文件夹 (存放数据库相关文件)

lib文件夹

  common.py(项目所用到的公共的功能)

log文件夹

  log.log(存放项目的日志文件)

readme.txt(文本文件,项目简介)

posted on 2019-07-16 20:37  so_interesting  阅读(196)  评论(0编辑  收藏  举报

导航