| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 图解python | 模块 -> 正文阅读 |
|
[Python知识库]图解python | 模块 |
1.Python模块在程序开发过程中,文件代码越来越长,维护越来越不容易。我们把很多不同的功能编写成函数,放到不同的文件里,方便管理和调用。在Python中,一个.py文件就称之为一个模块(Module)。 使用模块可以大大提高了代码的可维护性,而且当一个模块编写完毕,就可以被其他地方引用。我们在使用python完成很多复杂工作时,也经常引用其他第3方模块,受益于强大的python社区,几乎我们完成任何一项任务,都可以有对应的方便快捷可引用的库和模块来协助。 模块是一个包含所有你定义的函数和变量的文件,以.py后缀结尾。模块可以被别的程序引入和使用其中的函数功能。 下面是一个使用 python 标准库中模块的例子。
执行结果如下所示:
解释如下:
2.import语句想使用Python模块,只需在另一个源文件里执行import语句,语法如下:
当解释器遇到 import 语句,如果在当前的搜索路径中能搜索到模块,就会直接导入。 搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 showmeai,需要把命令放在脚本的顶端: showmeai.py 文件代码
test.py 文件代码
以上代码输出结果:
当我们使用import语句的时候,Python解释器会在搜索路径中寻找对应模块,搜索路径是由一系列目录名组成的,它是在Python编译或安装的时候确定的,安装新的库应该也会修改。搜索路径被存储在sys模块中的path变量,做一个简单的实验,在交互式解释器中,输入以下代码:
sys.path 输出是一个路径列表,其中第一项是空串’’,执行python解释器的当前目录。 我们创建一个代码如下的fibo.py文件,把它放在sys.path中的任何一个目录里面:
然后进入Python解释器,使用下面的命令导入这个模块:
就可以使用模块名称来访问函数: 3.实例
对于经常使用的函数,可以把它赋给一个本地的名称:
4.from … import 语句Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中,语法如下:
例如,要导入模块 fibo 的 fib 函数,使用如下语句:
这个声明不会把整个fibo模块导入到当前的命名空间中,它只会将fibo里的fib函数引入进来。 5.from … import * 语句把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:
例如,要导入模块 fibo 的 所有 函数,使用如下语句:
6.标准模块Python本身带着一些标准的模块库,有些模块直接被构建在解析器里,能很高效的使用。 比如模块sys,它内置在每一个Python解析器中。变量 sys.ps1 和 sys.ps2 定义了主提示符和副提示符所对应的字符串:
7.包包是一种管理Python模块命名空间的形式,我们经常会以「包.模块」的形式来导入模块,例如一个模块的名称是C.D, 那么他表示一个包C中的子模块D。使用这种形式不用担心不同库之间的模块重名的情况。 假设你想设计一套统一处理视频文件和数据的模块(或者称之为一个"包")。 现存很多种不同的音频文件格式(基本上都是通过后缀名区分的,例如: .mp4,.wmv,.avi,.mkv),所以你需要有一组不断增加的模块,用来在不同的格式之间转换。 并且针对这些视频数据,还有很多不同的操作,所以你还需要一组庞大的模块来处理这些操作。 这里给出了一种可能的包结构(在分层的文件系统中):
在导入一个包的时候,Python 会根据 sys.path 中的目录来寻找这个包中包含的子目录。 目录只有包含一个叫做__init__.py 的文件才会被认作是一个包。最简单的处理是放一个空的__init__.py文件。 用户可以每次只导入一个包里面的特定模块,比如:
这将会导入子模块:video.audio.io。 他必须使用全名去访问:
还有一种导入子模块的方法是:
这同样会导入子模块: io,并且他不需要那些冗长的前缀,所以他可以这样使用:
还有一种变化就是直接导入一个函数或者变量:
同样的,这种方法会导入子模块: io,并且可以直接使用他的 readfile() 函数:
当使用 from package import item 这种形式的时候,对应的 item 既可以是包里面的子模块(子包),或者包里面定义的其他名称,比如函数,类或者变量。 import 语法会首先把 item 当作一个包定义的名称,如果没找到,再试图按照一个模块去导入。如果还没找到,抛出一个 exc:ImportError 异常。 如果我们使用形如 import item.subitem.subsubitem 这种导入形式,除了最后一项,都必须是包,而最后一项则可以是模块或者是包,但是不可以是类,函数或者变量的名字。 8.视频教程也可以点击 这里 到B站查看有【中英字幕】的版本 【双语字幕+资料下载】Python 3全系列基础教程,全程代码演示&讲解!10小时视频42节,保证你能掌握Python!快来一起跟着视频敲代码~ <快速入门系列> 资料与代码下载本教程系列的代码可以在ShowMeAI对应的github中下载,可本地python环境运行,能科学上网的宝宝也可以直接借助google colab一键运行与交互操作学习哦! 本教程系列涉及的Python速查表可以在以下地址下载获取: 拓展参考资料ShowMeAI相关文章推荐
ShowMeAI系列教程推荐 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 0:38:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |