• 模块


    模块:

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

    模块的三种来源:

    1、内置的(Python解释器自带的)

    2、第三方的(别人写的)

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

    模块的四种表现形式

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

    2、已被编写为共享库或DLL的C或者C++扩展

    3、把一系列模块组织到一起的文件夹(文件下有一个init.py文件,该文件夹称之为包) 4、使用c语言编写并连接到python解释器的内置模块

    为什么要用模块

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

    2、可以使用自己写的模块()当项目比较庞大的时候,你的项目不可能只放在一个py文件中,当多个文件中都需要使用相同的方法时,可以将该公共的方法写到一个py文件中,其他文件可以以模块的形式导过去直接调用。

    如何使用模块

    一定要区分哪个是执行文件,哪个是被导入文件

    ·import导入模块

    使用import导入模块 访问模块名称空间的名字统一句式

                                               模块名.名字

    特点:

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

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

    首次导入模块,执行时三个步骤

    右键运行执行文件,首先会创建一个执行文件的名称空间

    执行被导入文件

    运行被导入文件中的代码 将产生的名字与值放在被导入文件的名称空间中

    在执行文件中产生一个指向名称空间的名字

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

    from...import...导入模块

    from...import...句式的缺点

    访问模块中的名字不需要加模块名前缀 在访问模块中的名字可能会与当前执行文件中的名字

    循环导入问题和解决思路

    异常原因

    Python中模块被导入一次之后,就不会重新导入,只会在第一次导入时执行模块内代码

    我们应该尽量避免出现循环导入,如果出现多个模块都需要共享的数据,可以将

    共享的数据集中放在某一个地方。

     

    name用法

    当文件被当做执行文件执行的时候name打印的结果是main

    当文件被当做模块导入的时候,name打印的结果是模块名

    if__name__=='main' 的快捷写法 main直接tab键即可

    模块的查找顺序

    1、先从内存中找 2、内置中找 3、sys.path中找(环境变量)

    模块的绝对导入和相对导入

    绝对导入

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

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

    相对导入

    . 代表的当前路径

    .. 代表着上一级路径

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

    相对导入只能在被导入模块中使用,不能再执行文件中使用。

    软件开发目录规范

    项目名

    bin文件夹

    start.py项目启动文件

    conf文件

    settings.py项目配置文件

    core文件夹

    src.py项目核心逻辑文件

    db文件夹 数据相关

    lib文件夹 common.py项目所用到的公共的功能

    log文件夹 log.log项目的日志文件

    readme文本文件 介绍项目

     

    start.py文件代码

    import sys
    import os
    
    BASE_DIR = os.path.dirname(os.path.dirname(__file__))
    sys.path.append(BASE_DIR)
  • 相关阅读:
    HTML <h1>
    HTML <body> 标签
    如何挑选深度学习 GPU?
    视频动作定位的分层自关注网络:ICCV2019论文解析
    三维点云去噪无监督学习:ICCV2019论文分析
    摄像头定位:ICCV2019论文解析
    深度学习扫地机器人
    细粒度语义分割:ICCV2019论文解析
    目标形体形状轮廓重建:ICCV2019论文解析
    2-2.5-3D的室内场景理解
  • 原文地址:https://www.cnblogs.com/panyi2019/p/11197013.html
Copyright © 2020-2023  润新知