zoukankan      html  css  js  c++  java
  • 模块及软件开发目录规范

    目录:

    模块

    import

    from ... import ...

    循环导入/相对导入/绝对导入

    软件开发目录规范

    1.模块

    概念:一系列功能的结合体

    来源:1.内置的(python解释器自带的)

       2.第三方(别人写的)

       3.自定义的(自己写的)

    表现形式:1.使用python编写的py文件(也就意味着py文件也可以称之为模块:一个py文件也可以称之为一个模块)

               2.已被编译为共享库或DLL的C或C++扩展

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

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

    模块使用:1.提高开发效率(用别人写好的)

          2.将公共模块写到一个py文件中,可以随时调用(自己写的)

          3.在模块使用过程中,一定要区分执行文件和导入文件

    2.import

    '''

    import md  # 在一个py文件中导入一个模块

    右键运行py文件 >>> 创建一个此文件的名称空间 >>> 导入模块 >>> 执行模块内的文件 >>>  运行模块文件内的代码 >> > 创建一个包括有模块内所有变量的md.py名称空间 >>> 执行文件中产生一个指向名称空间的名字(md)

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

    '''

    使用import导入模块,访问模块名称空间中的名字标准:   模块名.名字

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

    import os,time,md
    # 不推荐使用一次性导入多个模块
    # 推荐使用分次导入,如下:
    import os
    import time
    import md
    
    
    # 只有当几个模块有相同部分或者同属于一个模块,可以一次性导入多个
    
    # 通常导入模块的语句写在文件的开头
    
    # 当模块名字比较复杂,可以给模块取别名,如:
    import mddddddddddd as md

    3.from ... import ...

    可以指定文件导入模块,但是具有个缺点:访问模块中的名字不需要加模块名前缀  >>>   导致模块中的名字会与执行文件中的名字冲突

    '''

    补充:

    from md import *      # 一次性将md模块中的名字全部加载过来 (不推荐使用,因为不知道到底哪些名字可以用;名字过多的话导致内存溢出)

    __all__      # 可以指定所在文件被当作模块导入的时候,限制导入时被导入名字的个数。如  __all__ = ['money','read']     表明在被导入时,只能取money和read两个名字

    '''

    4.循环导入/相对导入/绝对导入

    循环导入:

      是不可取的方法,如出现循环导入,那么一定是程序设计不合理,在设计阶段应该避免

    解决循环导入的方法:

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

    2.函数内导入模块

    绝对导入:

      依据执行文件所在的文件夹路径为准

      (在执行文件和导入文件中都适用)

    相对导入:

      .代表当前路径   # 一个点

      ..代表上一级路径   # 两个点

      ...代表上上一级路径   # 三个点

      (只能在导入的模块文件中使用;只需要知道模块与模块之间路径关系 )

    模块的查找顺序:首先从内存中找 >>> 然后在内置中找 >>> 最后在sys.path中找(环境变量)

    注:大列表里面放有一堆文件路径,第一个路径永远是执行文件所在的文件夹

      py文件名不应该与模块名冲突,包括内置的和第三方的

    '''
    __name__:
      当文件被当作执行文件执行的时候,   __name__  打印的结果是  __main__
      当文件被当作模块导入的时候,  __name__  打印的结果是模块名(没有后缀)
      因此可以设立一个条件:
        if __name__ == '__main__': # 快捷写法:  main直接tab键即可
          执行下面的代码
    '''

    软件开发目录规范

    文件名:
        bin文件  # 存放程序的启动文件
            | _ _ _ _子文件一般有start.py或者run.py文件
            |
        conf文件  # 存放配置相关的文件
            | _ _ _ _子文件一般有settings.py文件
            |
        core文件  # 存放业务核心逻辑代码
            | _ _ _ _子文件一般有src.py文件
            |
        db文件  # 存储数据的文件
            | _ _ _ _子文件一般有db.txt文件
            |
        lib文件  # 存放一些公共的、共享的文件
            | _ _ _ _子文件一般有commen.py文件
            |
        log文件  # 存放一些日志,如浏览记录等
            | _ _ _ _子文件一般有log.log文件
            |
        Readme文本文档  # 项目说明文件

    **********************************

    启动文件bin固定代码:

    import sys

    import os

    BASE_DIR = os.path.dirname(os.path.dirname(__file__))

    sys.path.append(BASE_DIR)

    from core import src

    if __name__ == '__main__':

      src.run()

    *************************************

    PS:pycharm会自动将你新建的最顶层的目录自动添加到环境变量中!!!

  • 相关阅读:
    BEC listen and translation exercise 44
    中译英12
    BEC listen and translation exercise 43
    中译英11
    BEC listen and translation exercise 42
    中译英10
    BEC listen and translation exercise 41
    中译英9
    BEC listen and translation exercise 40
    中译英8
  • 原文地址:https://www.cnblogs.com/pupy/p/11195824.html
Copyright © 2011-2022 走看看