Python 第十一节 第六课

举报
我是小白呀iamarookie 发表于 2021/09/11 00:18:15 2021/09/11
【摘要】 [toc] 3.4 用 * 导入包     import * 这样的语句理论上是希望文件系统找出包的所有的子模块, 然后导入他们. 这可能会花很长时间等. Python 解决方案是提供一个明确的包索引.     这个索引由 __init__.py 定义 __all__变量, 该变量为一系列表...

[toc]

3.4 用 * 导入包

    import * 这样的语句理论上是希望文件系统找出包的所有的子模块, 然后导入他们. 这可能会花很长时间等. Python 解决方案是提供一个明确的包索引.

    这个索引由 __init__.py 定义 __all__变量, 该变量为一系列表, 如上例 a 包下的 __init__.py 中, 可定义 __all__ = ["module_A", "module_A2"] 

    这意味着, from sound.effects import * 会从对应的包中导入以上两个子模块;

注: 尽管提供 import * 的方法, 仍不建议在生产代码中使用这种写法.

3.5 包内引用

    如果是子包内引用, 可以按相对应位置引入子模块. 以 aa 包下的 module_AA 中导入 a 包下内容为例:

    from .. import module_A    #..表示上级目录     .表示同级目录

    from . import module_A2   #.表示同级目录

文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。

原文链接:iamarookie.blog.csdn.net/article/details/109141202

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。