作家
登录

一文让你学会所有的python模块使用

作者: 来源: 2018-02-05 09:37:33 阅读 我要评论

这意味着 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 文件代码履行之前,该变量初始化一个目次名 列表。该变量可以修改,它感化于包中的子包和模块的搜刮功能。

    这个功能可以用于扩大包中的模块集,不过它不常用。

    【编辑推荐】

    1. 光滑油滑法度榜样员一项创造节俭7成人工,董事长奖了一台汽车
    2. 大年夜数据解析:法度榜样员到底能干到若干岁?
    3. 干货来了!阿里工程师告诉你Python中异常处理的常用办法总结
    4. 团队开辟法度榜样不再做白工,GitHub开端支撑合营作者代码提交
    5. 2018年为Web开辟人员推荐的Python框架
    【义务编辑:张燕妮 TEL:(010)68476606】

    模块是包含 Python 定义和声明的文件。文件名就是模块名加上 .py 后缀。模块的模块名(做为一个字符 串)可以由全局变量 __name__ 获得。例如,你可以用本身惯用的文件编辑器在当前目次下创建一个叫 fibo.py 的文件,录入如下内容:



      推荐阅读

      为什么年轻的开发者不喜欢新的编程语言?

    HackerRank 近日对约 4 万名开辟者进行了查询拜访,并宣布了名为“2018 年开辟者技能申报”的查询拜访结不雅。有趣的是,申报发明,固然 Go、Kotlin 等新编程说话在所有开辟者的>>>详细阅读


    本文标题:一文让你学会所有的python模块使用

    地址:http://www.17bianji.com/lsqh/40501.html

  • 关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)