python 模块的概念介绍
模块
模块:本质就是一个.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 模块的概念介绍的更多相关文章
- Python 模块EasyGui详细介绍
转载:无知小德 Python 模块EasyGui详细介绍 EasyGui 官网: http://easygui.sourceforge.net 官方的教学文档:http://easygui-docs- ...
- 一、Python 模块EasyGui详细介绍
Python 模块EasyGui详细介绍 EasyGui 官网: -http://easygui.sourceforge.net 官方的教学文档: -easygui-docs-0.96\tutoria ...
- python模块之openpyxl介绍
openpyxl模块是一个读写Excel 2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档.其 ...
- python成长之路【第十八篇】:python模块介绍、模块导入和重载
一.模块和命名空间 一般来说,Python程序往往由多个模块文件构成,通过import语句连接在一起.每个模块文件是一个独立完备的变量包,即一个命名空间.一个模块文件不能看到其他文件定义的变量名,除非 ...
- Python模块的介绍
Python模块的学习: 1.os模块: 下面只对os模块中几个比较常用的方法做一些简单的示例: os.system():这个方法在shell中体现的比较多,在dos命令行中也可以执行,下面就以在do ...
- python模块介绍- multi-mechanize 性能测试工具
python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...
- python模块介绍- xlwt 创建xls文件(excel)
python模块介绍- xlwt 创建xls文件(excel) 2013-06-24磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 ...
- python模块介绍- binascii 二进制和ASCII转换
python模块介绍-binascii二进制和ASCII转换 目录 项目简介 简介: Uu编码 Binhex编码 Base64编码 QP码 CRC校验和 二进制转换 其他实例 项目简介 Python中 ...
- python模块介绍- HTMLParser 简单的HTML和XHTML解析器
python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...
随机推荐
- Ansible系列(二):选项和常用模块
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- 搭建连接MySql的三层架构的ASP.NetCore2.0的WebApi
里我们用三层架构搭建一个连接MySql的ASP.netCore模板的WebApi项目 首先添加WebApi项目(ASP.NetCore版本) 右键解决方案>新建项目> 选择Web>A ...
- weblogic-部署web应用
1, weblogic 安装介质的获取: oracle 官方weblogic下载 : http://www.oracle.com/technetwork/middleware/weblogic/d ...
- Java学习笔记四---打包成双击可运行的jar文件
写笔记四前的脑回路是这样的: 前面的学习笔记二,提到3个环境变量,其中java_home好理解,就是jdk安装路径:classpath指向类文件的搜索路径:path指向可执行程序的搜索路径.这里的类文 ...
- JVM菜鸟进阶高手之路十(基础知识开场白)
转载请注明原创出处,谢谢! 最近没有什么实战,准备把JVM知识梳理一遍,先以开发人员的交流来谈谈jvm这块的知识以及重要性,依稀记得2.3年前用solr的时候老是经常oom,提到oom大家应该都不陌生 ...
- 远程无法访问linux Mysql解决方案
在网上有很多关于这个的解决方案,我也采用了 写的比较详细的如: 1. 改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更 ...
- Application->ProcessMessages();
Application.ProcessMessages的用法意义 在循环中加Application.ProcessMessages是可以防止其他控件没响应,举个例子容易明白:假如你的窗体上有两个按 ...
- H5页面解决IOS进入不自动播放问题(微信内)
废话少说,直接上代码. 主要还是调用微信的jdk做兼容处理.,安卓可自动播放. ($(function(){ $(function(){ /* ** 复选框*/ $('.ul-radio').on(' ...
- Java字符串的匹配问题,String类的matches方法与Matcher类的matches方法的使用比较,Matcher类的matches()、find()和lookingAt()方法的使用比较
参考网上相关blog,对Java字符串的匹配问题进行了简单的比较和总结,主要对String类的matches方法与Matcher类的matches方法进行了比较. 对Matcher类的matches( ...
- Deep learning:一(基础知识_1)
本文纯转载: 主要是想系统的跟tornadomeet的顺序走一遍deeplearning; 前言: 最近打算稍微系统的学习下deep learing的一些理论知识,打算采用Andrew Ng的网页教程 ...