zoukankan      html  css  js  c++  java
  • 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_变量。该变量包含执行这样的语句时一个个导入的模块的名字。它由一个模块名字符串列表组成。

  • 相关阅读:
    css子元素水平垂直居中
    js 防抖节流
    NOIP 游记
    flash player播放器用法
    android设备连接不上电脑的解决方法
    AndroidStudio自动下载gradle失败问题解决
    3组Alpha冲刺5/6
    3组Beta冲刺2/5
    3组Beta冲刺5/5
    3组Beta冲刺1/5
  • 原文地址:https://www.cnblogs.com/FlameLuo/p/9744118.html
Copyright © 2011-2022 走看看