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

  • 相关阅读:
    第一个Django demo
    内建函数
    Git积累
    区间dp
    【Spring】Spring AOP详解(转载)
    【git】git 常用命令(含删除文件)
    【idea】idea如何在maven工程中引入jar包
    【Java】Scanner类nextInt后使用nextLine无法读取输入
    【Java_Eclipse】Eclipse插件如何卸载?
    【MySQL】MySQL5.7等以上版本在Windows上的配置
  • 原文地址:https://www.cnblogs.com/FlameLuo/p/9744118.html
Copyright © 2011-2022 走看看