这意味着 from sound.effects import * 语句会大年夜 sound 包中导入以上三个已定名的子模块。
如不雅没有定义 __all__ , from sound.effects import * 语句 不会 大年夜 sound.effects 包中导入所有的子模块。无论包中定义若干定名,只能肯定的是导入了 sound.effects 包(可能会运行 __init__.py 中的初始化代 码)以及包中定义的所有定名会随之导入。如许就大年夜 __init__.py 中导入了每一个定名(以及明白导入的子 模块)。同样也包含了前述的 import 语句大年夜包中明白导入的子模块,推敲以下代码:
import sound.effects.echo
import sound.effects.surround
from sound.effects import *
对于包的作者来说独一的解决方檀卷是给供给一个明白的包索引。import 语句按如下前提进行转换:履行from package import * 时,如不雅包中的 __init__.py 代码定义了一个名为 __all__ 的列表,就会按照列表中给出的模块名进行导入。新版本的包宣布时作者可以随便率性更新这个列表。如不雅包作者不想 import * 的时刻导入他们的包中所有模块,那么也可能会决定不支撑( import * )。例如, sound/effects/__init__.py 这个文件可能包含如下代码:
在这个例子中,echo 和 surround 模块导入了当前的定名空间,这是因为履行 from...import 语句时它们已 经定义在 sound.effects 包中了(定义了 __all__ 时也会同样工作)。
Python 带有一个标准模块库,并宣布有自力的文档,名为 Python 库参考手册(此后称其为“库参考手 册”)。有一些模块内置于说冥器之中,这些操作的拜访接口不是说话内核的一部分,然则已经内置于说冥器了。这既是为了进步效力,也是为了给体系调用等操作体系原生拜访供给接口。这类模块集合是一个依附于底层平台的配制揭捉?项。例如,winreg 模块只供给在 Windows 体系上才有。有一个具体的模块值得留意: sys ,这个模块内置于所有的 Python 说冥器。变量 sys.ps1 和 sys.ps2 定义了主提示符和帮助提示符字符串
尽管某些模块设计为应用 import * 时它只导出相符某种规范/模式的定名,仍然不建议在临盆代码中应用 这种写法。
记住,from Package import specific_submodule 没出缺点!事实上,除非导入的模块须要应用其它包中的同名 子模块,不然这是推荐的写法。
包内引用
如不雅包中应用了子包构造(就像示例中的 sound 包),可以按绝对地位大年夜相邻的包中惹人子模块。例如,如不雅 sound.filters.vocoder包须要应用 sound.effects包中的 echo 模块,它可以
from sound.Effects import echo
你可以用如许的情势 from module import name 来写显式的相对地位导入。那些显式相对导入用点号标明接洽关系 导入当前和上级包。以 surround 模块为例,你可以如许用:
实际上,说冥器由 sys.path 变量指定的路径目次搜刮模块,该变量初始化时默认包含了输入脚本(或者当前目次), PYTHONPATH 和安装目次。如许就许可 Python 法度榜样懂得若何修改或调换模块搜刮目次。须要留意的是因为这些目次中包含有搜刮路径中运行的脚本,所以这些脚本不该该和标准模块有名,不然在导入模块时 Python 会测验测验把这些脚本算作模块来加载。这平日会激发缺点。请拜见 标准模块 以懂得更多的信息。
from . import echo
from .. import formats
from ..filters import equalizer
须要留意的是显式或隐式相对地位导入都基于当前模块的定名。因为主模块的名字老是 "__main__" , Python 应用法度榜样的主模块应当老是用绝对导入。
输入脚本的目次(当前目次)。
“编译的” Python 文件
多重目次中的包
包支撑一个更为特别的特点, __path__。 在包的 __init__.py 文件代码履行之前,该变量初始化一个目次名 列表。该变量可以修改,它感化于包中的子包和模块的搜刮功能。
这个功能可以用于扩大包中的模块集,不过它不常用。
【编辑推荐】
【义务编辑:张燕妮 TEL:(010)68476606】
- 光滑油滑法度榜样员一项创造节俭7成人工,董事长奖了一台汽车
- 大年夜数据解析:法度榜样员到底能干到若干岁?
- 干货来了!阿里工程师告诉你Python中异常处理的常用办法总结
- 团队开辟法度榜样不再做白工,GitHub开端支撑合营作者代码提交
- 2018年为Web开辟人员推荐的Python框架
模块是包含 Python 定义和声明的文件。文件名就是模块名加上 .py 后缀。模块的模块名(做为一个字符 串)可以由全局变量 __name__ 获得。例如,你可以用本身惯用的文件编辑器在当前目次下创建一个叫 fibo.py 的文件,录入如下内容:
推荐阅读
HackerRank 近日对约 4 万名开辟者进行了查询拜访,并宣布了名为“2018 年开辟者技能申报”的查询拜访结不雅。有趣的是,申报发明,固然 Go、Kotlin 等新编程说话在所有开辟者的>>>详细阅读
本文标题:一文让你学会所有的python模块使用
地址:http://www.17bianji.com/lsqh/40501.html
1/2 1