2022年教会你所有的Python模块使用 .pdf
《2022年教会你所有的Python模块使用 .pdf》由会员分享,可在线阅读,更多相关《2022年教会你所有的Python模块使用 .pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、看了这篇你就会了所有的python模块使用如果你退出Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失。因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作为输入执行。这就是传说中的脚本。随着你的程序变得越来越长,你可能想要将它分割成几个更易于维护的文件。你也可能想在不同的程序中使用顺手的函数,而不是把代码在它们之间中拷来拷去。为了满足这些需要, Python 提供了一个方法可以从文件中获取定义,在脚本或者解释器的一个交互式实例中使用。这样的文件被称为模块;模块中的定义可以导入到另一个模块或主模块中(在脚本执行时可以调用的变量集位于
2、最高级,并且处于计算器模式)。模块是包括Python 定义和声明的文件。文件名就是模块名加上.py 后缀。模块的模块名(做为一个字符串)可以由全局变量_name_ 得到。例如,你可以用自己惯用的文件编辑器在当前目录下创建一个叫fibo.py 的文件,录入如下内容 : 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 13 页现在进入Python 解释器并使用以下命令导入这个模块: 这样做不会直接把fibo 中的函数导入当前的语义表;它只是引入了模块名fibo 。你可以通过模块名按如下方式访问这个函数:如果打算频繁使用一个函数,你可以将它赋
3、予一个本地变量: 深入模块除了包含函数定义外,模块也可以包含可执行语句。这些语句一般用来初始化模块。他们仅在第一次被导入的地方执行一次。每个模块都有自己私有的符号表,被模块内所有的函数定义作为全局符号表使用。因此,模块的作者可以在模块内部使用全局变量,而无需担心它与某个用户的全局变量意外冲突。从另一个方面讲,如果你确切的知道自己在做什么,你可以使用引用模块函数的表示法访问模块的全局变量,modname.itemname。模块可以导入其他的模块。一个(好的)习惯是将所有的import 语句放在模块的开始(或者是脚本),这并非强制。被导入的模块名会放入当前模块的全局符号表中。小编为大家推荐一个学习
4、交流群:308754087,群里有人都快满了 大家遇到啥问题都可以在里面交流!是一个非常好的学习交流地方欲进从速欧 各种 PDF 等你来下载,全部免费,只为帮助大家快速入门。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 13 页import 语句的一个变体直接从被导入的模块中导入命名到本模块的语义表中。例如这样可以导入所有除了以下划线( _ ) 开头的命名。需要注意的是在实践中往往不鼓励从一个模块或包中使用* 导入所有,因为这样会让代码变得很难读。不过,在交互式会话中这样用很方便省力。* 出于性能考虑,每个模块在每个解释器会话中只导入
5、一遍。因此,如果你修改了你的模块,需要重启解释器;或者,如果你就是想交互式的测试这么一个模块,可以用imp.reload() 重新加载,例如 import imp; imp.reload(modulename)。作为脚本来执行模块当你使用以下方式运行Python 模块时,模块中的代码便会被执行python fibo.py 模块中的代码会被执行,就像导入它一样,不过此时_name_ 被设置为_main_ 。这相当于,如果你在模块后加入如下代码 : if _name_ = _main_:import sysfib(int(sys.argv1)就可以让此文件像作为模块导入时一样作为脚本执行。此代码只
6、有在模块作为“ main” 文件执行时才被调用 : 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 13 页$ python fibo.py501 1 2 3 5 8 13 21 34如果模块被导入,不会执行这段代码: import fibo这通常用来为模块提供一个便于测试的用户接口(将模块作为脚本执行测试需求)。模块的搜索路径导入一个叫spam 的模块时,解释器先在当前目录中搜索名为spam.py 的文件。如果没有找到的话,接着会到sys.path 变量中给出的目录列表中查找。sys.path 变量的初始值来自如下:?输入脚本的目录(
7、当前目录)。?环境变量PYTHONPATH 表示的目录列表中搜索?(这和 shell 变量PATH 具有一样的语法,即一系列目录名的列表)。?Python 默认安装路径中搜索。?在支持符号连接的文件系统中,输入的脚本所在的目录是符号连接指向的目录。换句话说也就是包含符号链接的目录不会被加到目录搜索路径中。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 13 页实际上,解释器由sys.path 变量指定的路径目录搜索模块,该变量初始化时默认包含了输入脚本(或者当前目录),PYTHONPATH 和安装目录。这样就允许Python 程序了解如
8、何修改或替换模块搜索目录。需要注意的是由于这些目录中包含有搜索路径中运行的脚本,所以这些脚本不应该和标准模块重名,否则在导入模块时Python 会尝试把这些脚本当作模块来加载。这通常会引发错误。请参见标准模块以了解更多的信息。“ 编译的 ” Python 文件为了加快加载模块的速度,Python 会在_pycache_ 目录下以module.version.pyc 名字缓存每个模块编译后的版本,这里的版本编制了编译后文件的格式。它通常会包含Python 的版本号。例如,在CPython 3.3 版中, spam.py 编译后的版本将缓存为_pycache_/spam.cpython33.pyc
9、 。这种命名约定允许由不同发布和不同版本的Python 编译的模块同时存在。Python 会检查源文件与编译版的修改日期以确定它是否过期并需要重新编译。这是完全自动化的过程。同时,编译后的模块是跨平台的,所以同一个库可以在不同架构的系统之间共享。Python 不检查在两个不同环境中的缓存。首先,它会永远重新编译而且不会存储直接从命令行加载的模块。其次,如果没有源模块它不会检查缓存。若要支持没有源文件(只有编译版)的发布,编译后的模块必须在源目录下,并且必须没有源文件的模块。部分高级技巧 : ?精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,
10、共 13 页为了减少一个编译模块的大小,你可以在Python 命令行中使用-O 或者-OO 。-O 参数删除了断言语句, -OO 参数删除了断言语句和_doc_ 字符串。?因为某些程序依赖于这些变量的可用性,你应该只在确定无误的场合使用这一选项。 “ 优化的 ” 模块有一个 .pyo 后缀而不是 .pyc 后缀。未来的版本可能会改变优化的效果。?来自.pyc 文件或 .pyo 文件中的程序不会比来自 .py 文件的运行更快;.pyc 或.pyo 文件只是在它们加载的时候更快一些。?compileall 模块可以为指定目录中的所有模块创建 .pyc 文件(或者使用-O 参数创建.pyo 文件)。
11、?在 PEP 3147 中有很多关这一部分内容的细节,并且包含了一个决策流程。?标准模块Python 带有一个标准模块库,并发布有独立的文档,名为Python 库参考手册(此后称其为 “ 库参考手册” )。有一些模块内置于解释器之中,这些操作的访问接口不是语言内核的一部分,但是已经内置于解释器了。这既是为了提高效率,也是为了给系统调用等操作系统原生访问提供接口。这类模块集合是一个依赖于底层平台的配置选项。例如,winreg 模块只提供在Windows 系统上才有。有一个具体的模块值得注意:sys ,这个模块内置于所有的精选学习资料 - - - - - - - - - 名师归纳总结 - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年教会你所有的Python模块使用 2022 教会 所有 Python 模块 使用
限制150内