美文网首页
python构建一个模块的层级包

python构建一个模块的层级包

作者: ppmoon | 来源:发表于2016-04-16 22:09 被阅读597次

    问题

    你想将你的代码组织成由很多分层模块构成的包。

    解决方案

    封装成包是很简单的。在文件系统上组织你的代码,并确保每个目录都定义了一个init.py文件。 例如:

    graphics/ 
      __init__.py 
      primitive/ 
          __init__.py 
          line.py 
          fill.py 
          text.py 
      formats/ 
          __init__.py 
          png.py 
          jpg.py
    

    一旦你做到了这一点,你应该能够执行各种import语句,如下:

    import graphics.primitive.line
    from graphics.primitive import line
    import graphics.formats.jpg as jpg
    

    讨论

    定义模块的层次结构就像在文件系统上建立目录结构一样容易。 文件init.py的目的是要包含不同运行级别的包的可选的初始化代码。 举个例子,如果你执行了语句import graphics, 文件graphics/init.py将被导入,建立graphics命名空间的内容。像import graphics.format.jpg这样导入,文件graphics/init.py和文件graphics/graphics/formats/init.py将在文件graphics/formats/jpg.py导入之前导入。
    绝大部分时候让init.py空着就好。但是有些情况下可能包含代码。 举个例子,init.py能够用来自动加载子模块:

    from . import jpg
    from . import png
    

    像这样一个文件,用户可以仅仅通过import grahpics.formats来代替import graphics.formats.jpg以及import graphics.formats.png。

    相关文章

      网友评论

          本文标题:python构建一个模块的层级包

          本文链接:https://www.haomeiwen.com/subject/rllolttx.html