zoukankan      html  css  js  c++  java
  • 模块

    一. 模块

      指一系列功能的集合体(模块名用小写和下划线组成)

      模块的四个通用类别:1.使用python编写的.py 文件

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

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

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

      模块的三个来源: 内置模块  , 第三方模块,   自定义模块

      使用模块的原因: 使用内置模块和第三方模块极大地提高了开发效率

              使用自定义模块将程序各部分组件共用的功能提取放在一个模块中,其他组件可以调用该模块,减少代码冗余

      导入模块: import + 模块名(首次导入模块会发生三件事)

           1. 会产生一个模块的名称空间

           2. 执行导入模块文件的内容,将产生的名字放到模块的名称空间里

           3. 在当前执行文件中拿到名字例如read1, 该名字指向模块名称空间中的read1

      ( import + 模块名 )    vs  (  from 模块名 import 功能名 )

      import  优点:  引用模块中的名字必须加前缀,这样不会与当前名称空间冲突

          缺点: 引用必须加前缀,不够简洁

      from...import...:  优点  是引用不用加前缀,书写简洁

              缺点:容易与当前执行文件名称空间名字冲突

      在被调用文件spam中定义  __all__ :[' 函数1', '函数2']  当用到 from spam import *  时只引用列表中的内容

      当被调用文件中的可变类型改变时,内存地址不变,因此引用时该可变类型也跟着变

      当被调用文件中的不可变类型改变时,内存地址发生了改变,因此引用时该不可变类型不变

      模块的搜索路径: 1. 内存     2.内置模块      3. sys.path (环境变量,全局有效)

               优先级: 内存  >  内置  >  sys.path

               被导入模块参照的也是执行文件为准的sys.path

      区分path文件的两种用途:

        1. 当文件被当做执行文件时 __name__值为__main__

        2. 当文件被当做模块导入时 __name__值为模块名

      文件开发的目录规范: bin ( 启动文件)===》 start.py

                 conf(配置文件)===》 settings.py

                 lib(自定义模块)===》 common.py

                 core(核心文件)====》 src.py

                 db( 数据文件)

                 log(日志)

                 readme(介绍软件)

      import sys:  1. 可以把项目根目录加到环境变量(sys.path.append(r' 路径 '))

             2.把项目根目录所在的绝对路径拿到,加到环境变量

            os.path.abspath(__file__)  获得当前执行文件的绝对路径

            os.path.dirname( )  获取到执行文件所在的文件夹

            获得ATM文件夹 之前的 目录(  src.py==> core 文件夹 ===》 ATM文件夹)

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

           日志模块要打开文件,将内容写入文件,打开文件的路径应在settings中设定

              log_path=r' %slog ranscation.log' % BASE_DIR

      总结:启动文件直接放在ATM文件下面,bin删除

           将ATM文件放在顶级文件中

      

      

  • 相关阅读:
    转-- js(jQuery)获取时间的方法及常用时间类
    jquery 选择器(name,属性,元素)大全
    CSS中LI圆点样式li {list-style-type:符号名称}
    [华为oj]称砝码
    c++中的字符串与数字相互转换
    [华为]DP合唱队形
    [hihoCoder#1032]最长回文子串
    [STL系列]仿函数
    [字符串]寻找一个字符串中最大的公共子串
    [STL系列]STL容器性能比较列表
  • 原文地址:https://www.cnblogs.com/Afrafre/p/10062592.html
Copyright © 2011-2022 走看看