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 ...
随机推荐
- Project Euler:99 Largest exponential C++
Comparing two numbers written in index form like 211 and 37 is not difficult, as any calculator woul ...
- 如何快速生成企业Web应用
随着互联网的发展,企业认识到"电子化"和"无纸化"办公是一种必然趋势,但是企业在信息化建设中经常望而却步,主要原因是高昂的建设成本与不可以预估的结果风险.另外软 ...
- Python-老男孩-01_基础_文件IO_函数_yield_三元_常用内置函数_反射_random_md5_序列化_正则表达式_time
Python2.7 缩进统一: 约定 常量 大写 , 变量 小写 判断一个变量在内存中的地址,也能看出是不是一个值 id()函数 >>> x = 'abc' >>&g ...
- 百度编辑器不能插入html标签解决方法
找到此方法: me.addInputRule(function (root) { var allowDivTransToP = this.options.allowDivTransToP; var v ...
- MySQL binlog 的恢复操作
测试出有个问题:mysqlbinlog 不加任何参数 恢复整个binlog 日志文件发现里面有这个操作 SET @@SESSION.GTID_NEXT 的操作, 如果需要恢复文件的时候就需要把他过 ...
- css样式引入优先级?
css中的优先级讲的有 1.选择器的优先级. 2.样式引入的优先级. 今天要研究的是样式引入的优先级.网上又很多答案都是如下的,但是真的是这样的吗,让我们来探一探究竟是如何. 四种样式的优先级别是:行 ...
- ES6 Promise 对象
Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案--回调函数和事件--更合理和更强大.它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Pro ...
- mongoDB学习手记2--建库、删库、插入、更新
上一篇 讲了在windows系统下的安装和启动,本文主要讲怎么建库.删库.插入.更新 在讲之前我们说一下mongoDB的一些基本概念,我们对比关系型数据库能更直观的理解 SQL术语/概念 Mongo ...
- 《深入浅出设计模式》读书笔记 C#版(第一章)
原始需求和设计 事情是这样开始的,公司需要做一套程序,鸭子,设计如下: 一个鸭子父类,多个派生类,三个可override的方法. 第一次需求变更 我们要会飞的鸭子!!!!! 所以我们做了如下的更改: ...
- 初学node.js有感三
WebStorm下的node.js 一.回顾与继续 在前面,我们知道了node.js的基本框架和思路,在这些原生环境下我们对node.js的设计思想有了比较深刻的认识,并且具有了编写大型程 ...