python中的包

Posted Flameluo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中的包相关的知识,希望对你有一定的参考价值。

  包将有联系的模块组织在一起,可以避免模块名称冲突问题,让应用组织结构更加清晰

  假定我们的包的例子有如下的目录结构:

Phone/
    _init_.py
    common_util.py
    Voicedta/
        _init_.py
        Post.py
        Isdn.py
    Fax/
        _init_.py
        G3.py
    Mobile/
        _init_.py
       Analog.py
       igital.py
    Pager/
        _init_.py
        Numeric.py

  Phone是最顶层的包,Voicedta等是它的子包,可以这样导入子包,如下:

import Phone.Mobile.Analog
Phone.Mobile.Analog.dial()

  也可以使用from-import实现不同需求的导入

  第一种方法只是导入顶层的子包,然后使用属性/点操作符向下引用子包树:

from Phone import Mobile
Mobile.Analog.dial(555-1212)

  此外,还可以引入更多的子包

from Phone.Mobile import Analog
Analog.dial("555-1212")

  事实上,可以一直沿子包的树状结构导入

from Phone.Mobile.Analog import dial
dial("555-1212")

  在上边的目录结构中,有很多_init_.py文件。这些是初始化模块,from-import语句导入子包时需要用到它。如果没有用到,可以说是空文件。

  包同样支持 from-import all 语句

from package.module import *

  然而,这样的语句会导入哪些文件取决于操作系统的文件系统。所以在_init_.py中加入_all_变量。该变量包含执行这样的语句时一个个导入的模块的名字。它由一个模块名字符串列表组成。

 

以上是关于python中的包的主要内容,如果未能解决你的问题,请参考以下文章

python中的包

尽管覆盖了 onSaveInstanceState,但片段的包在 onCreate 中为空

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

如何从片段中调用 getSupportFragmentManager()?

Python代码阅读(第13篇):检测列表中的元素是否都一样

nose在python2与python3中的包的自动发现用例的区别