Python语言之模块和包
小标 2018-10-09 来源 : 阅读 996 评论 0

摘要:本文主要向大家介绍了Python语言之模块和包,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

本文主要向大家介绍了Python语言之模块和包,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

一 Python模块简介

Python模块:
可以将代码量较大的程序分割成多个有组织,彼此间独立但又能互相交互的代码片段,这些自我包含的有组织的代码段就是模块

模块在物理形式上表现为以.py 结尾的代码文件
一个文件被看做一个独立的模块,一个模块也可以被看做是一个文件
模块的文件名就是模块的名字加上扩展名.py
每个模块都有自己的 名称空间
Python 允许“导入”其他模块以实现代码重用,从而也实现了将独立的代码文件组织成更大的程序系统
Python 中,模块也是对象
在一个模块的顶层定义(全局变量)的所有变量都在被导入时成为了被导入模块的属性

二  Python 程序架构:

一个Python程序通常包括一个顶层文件和其他的模块文件(0个,1个或多个)
顶层文件:包含了程序的主要控制流程
模块文件:为顶层文件或其他模块提供各种功能性组件
模块首次导入(或重载)时,Python会立即执行模块文件的顶层程序代码(不在函数内的代码),而位于函数体内的代码直到函数被调用后才会执行
Python自带的模块称为Python的标准库模块
模块搜索:
Python解释器在import 模块是必须先找到对应的模块文件
程序的主目录
PYTHONPATH(如果设置了此变量)
标准链接库目录
任何.pth文件的内容(如果存在.pth文件)
这四个组件组合起来及sys.path所包含的路径,而Python 会选择在搜索路径中的第一个符号导入文件名的文件

模块的导入需要一个叫做“路径搜索”的过程,即在文件系统“预定义区域”中查找mymodule 文件,这些预定义区域只不过是你的python搜索路径的集合,路径搜索和搜索路径是两个不同的概念,前者是指查找某个文件的操作,后者是去查询一组目录。
默认搜索路径是在编译或安装时指定的,它可以在一个或两个地方修改
一个是启动 Python 的 shell 或命令行的 PYTHONPATH 环境变量。 该变量的内容是一组用冒号分割的目录路径。 如果你想让解释器使用这个变量, 那么请确保在启动解释器或执行 Python 脚本前设置或修改了该变量。
解释器启动之后, 也可以访问这个搜索路径, 它会被保存在 sys 模块的 sys.path 变量里。不过它已经不是冒号分割的字符串, 而是包含每个独立路径的列表。下面是一个 Unix 机器搜索路径的样例。切记, 搜索路径在不同系统下一般是不同的。

这是一个列表,因此我们可以进行修改,如果你需要导入的模块的目录不在sys.path中,则可以使用append()进行对此列表操作,以导入此模块
         
将上述目录加入到sys.path中

查看

模块导入

只要这个列表中包含这个文件,它就会被正确的导入,当然,这个方法是将其导入到文件的尾部,也可以使用insert()将其导入指定位置

三 pycharm中模块的导入

1  同一个文件夹中的配置

A 定义一个被导入的模块

B 导入模块到目标模块

C使用name获取模块的名称,当为模块内部时其值为mian,若为导入的,则其名为模块名
一个模块文件可以同时支持顶层执行(作为顶层文件)或被导入(作为模块文件)
每个模块都有个名为name的内置属性,python会自动设置该属性
如果文件是以顶层程序文件执行,在启动时,name的值为“main”
如果是被导入,则name的值为模块名
可以在模块文件中检测自己的name顺序ing,以之实现在执行时运行指定的代码,常用于模块的自我测试

D将其导入执行模块进行查看:

E使用if语句进行判断,已达到不将被导入模块的执行结果在导入模块中执行:

F将其导入并验证

G将该配置导入到指定模板:(ctrl+alt+s)进行打开其配置:

2  将被导入模块和导入模块放置在不同的文件夹中

包:包用于将一组模块归并到一个目录中,此目录及为包,目录名及为包名
包是一个有层次的文件目录结构,定义了一个由模块和子包组成的Python应用程序执行环境
基于包,Python在执行模块导入时可以指定模块的导入路径
Import   dir1.dir2.mod1
要使用如下的package1,则py_pkg_mod容器必须要在模块中搜索路径中
Import   package1.mod1
包导入语句的路径内的每个目录内都必须有init.py 文件
init.py可包含python代码,但通常为空,仅用于扮演包初始化的挂钩、替目录产生模块命名空间以及使用目录导入时实现from* 行为的角色
pycharm中包的创建:
使用alt+ins快捷键可以指定创建的是文件还是包,Python  package为带有init.py的Python包。
       

A修改其配置使得不同文件夹的文件可以直接导入(选择Sources  Root)

B再次执行则可以进行导入并运行:

C取消则不能运行:

D在被导入模块所在的文件夹创建init.py的文件并将其本地模块导入到此init.py文件中

E在目标文件中导入该模块并运行,则可以正常运行

3 from ...  import ...的应用

1  For-import 语句

常用于导入指定模块放入部分属性至当前名称空间(不需要加上该模块的名称)
From   module  import name1[,name2[nameN]]
Import 和 from都是隐形赋值语句
Import 将整个模块对象赋值给一个变量名(模块名)
From 将一个或多个变量名赋值给导入此模块的模块中的同名对象,如果当前环境中有与导入模块相同的名称,其将会被新导入的名称所覆盖
模块就是名称空间

2 import的工作机制

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

B 全局变量的定义

C 导入全局变量并运行,则可以运行。

D 导入函数并运行,则可以运行。

E 修改导入模块的模块名或函数、装饰器名使用as 即可修改:

四 、第三方模块的安装

微信基本信息的获取相关的软件:(itchat)

1 下载并安装Python-pip

如此则表示安装成功:

2 安装itchat(微信插件)

在联网的状况下进行安装
使用pip安装

2 使用pycharm安装

使用ctrl+alt+s进入此界面并按右上角的加号(+)

进入之进行查找itchat,并按左下角的intall  Package 即可安装

本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程