python模块和软件开发目录规范

一、模块介绍

什么是模块?

  模块:就是一系列功能能的结合体

    模块的三种来源:

      1、内置;2、第三方;3、自定义。

    模块四种表现形式:

      1、使用python编写的py文件(意味着py文件也可以称之模块)

      2、已被编译为共享库或DLL的C或C++扩展(作为了解即可)

      3、把一系列模块组织到一起的文件夹

      4、使用C编写并连接到python解释器的内置模块

为什么要用模块?

   1、别人写好的模块(内置,第三方),拿来直接可以用,省事。

   2、使用自己写的模块:放程序比较庞大的时候,自己的项目不可能只在一个py文件中,那么当有多个文件都需要使用相同的方法的时候,

     可以将该公共的方法写到一个py文件中,其他文件以模块的形式到过去直接调用即可。

如何使用模块?

   直接调用,方法》》》import /from...import...

   注意一定要区分那个是执行文件,那个是被导入文件

二、导入模块:

  import

  1、运行run.py文件首先会创建一个run.py的名称空间

    首次导入模块 例:md.py文件

      1、执行md.py文件

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

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

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

 2、使用import导入模块,访问模块名称空间中的名字统一句式:模块名,名字

    用法特点:

    1、指名道姓的访问模块中的名字,永远不会与执行文件中的名字冲突。

    2、如果想访问模块中名字,必须用模块名 . 名字的方式

    ps:只要当几个模块有相同部分或属于用一个模块,可以使用上面的方法

     当几个模块没有联系的情况下,应该分多次导入

    例:import os

      import time

      import md

      通常导入模块的局势会卸载文件的开头;当模块名字比较复杂的情况下,可以给模块去别名

  from...import...

    1、和import运行前两步一样,第三步:直接拿到指向模块md1.py名称空间中某个值的名字

     用法缺点:

       1、访问模块中的名字不需要加模块名前缀

       2、在访问模块名字可能会与当前执行文件中的名字冲突

    2、补充:

      from ...import *   #  * 一次性将模块中的名字全部加载过来 

      __all__可以指定当所在py文件被当模块导入的时候,可以限制导入者能够拿到的名字个数

三、循环导入

  循环导入出现,一定是程序设计的不合理,在设计阶段应该避免

  解决循环导入的问题的方式

    1、将循环导入的语句放在被导入语句下方

    2、导入模块语句放在函数体代码内

四、__name__用法

  当文件被当做执行文件执行时,__name__打印的结果是__main__

  当文件被当做模块导入时,__name__打印的结果模块名(无后缀)

def index1():
    print('index1')

def index2():
    print('index2')

if __name__ == '__main__':  # 快捷写法 main直接tab键即可
    index1()
    index2()

五、模块查找顺序:

  1、先从内存中找

  2、次从内置中找

  3、sys.path中找(类似环境变量)

  ps:一定要分清楚谁是执行文件,谁是被导入文件

  一堆文件路径,第一个路径永远都是执行文件所在的文件夹

  注意py文件名不应该与模块名(内置的,第三方)冲突

import sys
sys.path.append(r'D:Python项目day14dir1')
print(sys.path)  # 添加文件路径

六、绝对导入和相对导入

   绝对导入必须依据执行文件所在的文件夹路径为准

    1.绝对导入无论在执行文件中还是被导入文件都适用

   相对导入只能用在模块文件中使用,无序考虑执行文件问题,只需要知道模块和模块之间路径关系

    .代表的当前路径

    ..代表的上一级路径

    ...代表的是上上一级路径

    from . import m2

    from ... import test   # 往上回3个路径

七、软件开发目录规范

  1、bin  》》》start.py 启动文件   

  2、conf 》》》settings.py 配置文件

  3、core》》》src.py核心文件

  4、db 》》》数据库

  5、lib 》》》common.py 公共文件

  6、log》》》daily record.txt  日志

  7、readme.txt 》》》解释文件

  start.py启动文件也可放在文件跟目录下

    固定格式:

import sys
import os

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
sys.path.append(BASE_DIR)
"""
pycharm会自动将你新建的最顶层的目录自动添加到环境变量中
上面这两句话 不是针对你的 是针对下载你这个软件的用户
"""
from core import src

if __name__ == '__main__':
    src.run()

  

原文地址:https://www.cnblogs.com/xiaowangba9494/p/11196900.html