模块

模块:本质就是一个.py文件
分为三部分:内置模块、第三方模块,自定义模块

模块: 顶层文件

  • python模块
    python模块可以将代码量较大的程序分割成多个有组织的、彼此独立但又能互相交互的代码片段,这些自我包含的有组织的代码段就是模块,模块在物理形式上表现为以.py结尾的代码文件
    一个文件被看作一个独立的模块,一个模块也可以被看作是一个文件
    模块的文件名就是模块的名字加上扩展名.py
    每个模块都有自己的名称空间
    python允许“导入”其他模块以实现代码重用,从而也实现了将独立的代码文件组织成更大的程序系统
    python中,模块也是对象
    在一个模块的顶层定义的所有变量都在被导入时成为了被导入模块的属性

  • python程序架构
    一个python程序通常包括一个顶层程序文件和其他的模块文件(0个、1个或多个)
    顶层文件:包含了程序的主要控制流程
    模块文件:为顶层文件或其他模块提供各种功能性组件
    模块首次导入(或重载)时,python会立即执行模块文件的顶层程序代码(不在函数内的代码)。而位于函数主体内的代码直到函数被调用后才会执行

  • 模块的执行环境
    模块是被导入的,但模块也可以导入和使用其他模块,这些模块可以用python或其他编程语言写成 模块可内含变量、函数以及类来仅限其工作,而函数和类可以包含变量和其他元素 

  • 导入模块
    在导入模块时只能使用模块名,而不能使用带.py后缀的模块文件名 import语句 导入指定的整个模块,包括生成一个以模块名命名的名称空间 import module1[,module2[,...moduleN]] 建议一个import语句只导入一个模块 import module as module_alias #为模块起个别名 from-import语句 常用于只导入指定模块的部分属性至当前名称空间 from module import name1[,name2[,... nameN ]]

  • import和from-import是赋值语句
    import和from是可执行语句,类似于def,因此,它们可以在if测试中,出现于def中等等, python执行到这些语句时才会对其进行解析,这意味着所有来自模块的属性仅在import语句执行后才能使用 import和from都是隐性赋值语句 import将整个模块对象赋值给亲一个变量名 from将一个或多个变量名赋值给导入此模块的模块中的同名对象模块就是名称空间 模块的名称空间可以通过属性dict或dir(M)获取 模块属性可通过点号(.)运算符获取,格式为M.attr 模块是一个独立的作用域(本地变量就是全局变量)

  • import的工作机制
    import语句导入指定的模块时或执行三个步骤 找到模块文件 在指定的路径下搜索模块文件 编译成字节码 文件导入时就会编译,因此顶层文件的.pyc字节码文件在内部使用后会被丢弃,只有 被导入的文件才会留下.pyc文件 执行模块的代码来创建其所定义的对象 模块文件中的所有语句会依次执行,从头至尾,而此步骤中任何对变量名的赋值运算,都会产生所得到的模块文件的属性 注意:模块只在第一次导入时才会执行如上步骤。 后续的导入操作只不过是提取内存中已加载的模块对象 reload()可用于重新加载模块

  • import的工作机制
    import语句导入指定的模块时或执行三个步骤 找到模块文件 在指定的路径下搜索模块文件 编译成字节码 文件导入时就会编译,因此顶层文件的.pyc字节码文件在内部使用后会被丢弃,只有 被导入的文件才会留下.pyc文件 执行模块的代码来创建其所定义的对象 模块文件中的所有语句会依次执行,从头至尾,而此步骤中任何对变量名的赋值运算,都会产生所得到的模块文件的属性 注意:模块只在第一次导入时才会执行如上步骤。 后续的导入操作只不过是提取内存中已加载的模块对象 reload()可用于重新加载模块

python 模块的概念介绍的更多相关文章

  1. Python 模块EasyGui详细介绍

    转载:无知小德 Python 模块EasyGui详细介绍 EasyGui 官网: http://easygui.sourceforge.net 官方的教学文档:http://easygui-docs- ...

  2. 一、Python 模块EasyGui详细介绍

    Python 模块EasyGui详细介绍 EasyGui 官网: -http://easygui.sourceforge.net 官方的教学文档: -easygui-docs-0.96\tutoria ...

  3. python模块之openpyxl介绍

    openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档.其 ...

  4. python成长之路【第十八篇】:python模块介绍、模块导入和重载

    一.模块和命名空间 一般来说,Python程序往往由多个模块文件构成,通过import语句连接在一起.每个模块文件是一个独立完备的变量包,即一个命名空间.一个模块文件不能看到其他文件定义的变量名,除非 ...

  5. Python模块的介绍

    Python模块的学习: 1.os模块: 下面只对os模块中几个比较常用的方法做一些简单的示例: os.system():这个方法在shell中体现的比较多,在dos命令行中也可以执行,下面就以在do ...

  6. python模块介绍- multi-mechanize 性能测试工具

    python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...

  7. python模块介绍- xlwt 创建xls文件(excel)

    python模块介绍- xlwt 创建xls文件(excel) 2013-06-24磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 ...

  8. python模块介绍- binascii 二进制和ASCII转换

    python模块介绍-binascii二进制和ASCII转换 目录 项目简介 简介: Uu编码 Binhex编码 Base64编码 QP码 CRC校验和 二进制转换 其他实例 项目简介 Python中 ...

  9. python模块介绍- HTMLParser 简单的HTML和XHTML解析器

    python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...

随机推荐

  1. Linux帮助手册(man)

    Linux的帮助文档 在我们使用Linux的过程中,都会遇到这样那样的问题,一般我们在计算机能连上网的情况下会进行百度或Google解决问题,但是并不是所有文题都能在网上很快得到答案.万一我们是在没有 ...

  2. [5] 微信公众号开发 - 微信支付功能开发(网页JSAPI调用)

    1.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按 ...

  3. python实例编写(2)--等待,一组对象,层级元素,frame对象处理

    一.设置等待 #coding=utf-8 from selenium import webdriver from selenium.webdriver.support.ui import WebDri ...

  4. Hibernate @Embeddable注释

    在hibernate中实现自定义类型,只要实现UserType接口即可或者以Component的形式提供.JPA的@Embedded注释可以在你的Entity中使用一般的Java对象,此对象需要用@E ...

  5. 手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)

    背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代 ...

  6. 基于FPGA的腐蚀膨胀算法实现

    本篇文章我要写的是基于的腐蚀膨胀算法实现,腐蚀膨胀是形态学图像处理的基础,,腐蚀在二值图像的基础上做"收缩"或"细化"操作,膨胀在二值图像的基础上做" ...

  7. WebService的简单介绍与入门使用

    WebService是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式 ...

  8. CDS测试框架介绍:如何为ABAP CDS Entities写测试

    动机 现在大家都知道单元测试对我们代码的好处.并且我们都承认它是开发过程中不可或缺的一部分.但是在把代码切换到数据库的模式下的时候,我们被粗暴地打回了软件测试的黑暗年代...我们现在面临着逻辑下推到A ...

  9. Linux入门之常用命令(11)复制cp及scp

    [scp] ================== scp 命令 ================== scp 可以在 2个 linux 主机间复制文件: 命令基本格式:        scp [可选参 ...

  10. poj3264 最大值与最小值的差

    For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order. One d ...