zoukankan      html  css  js  c++  java
  • 第10.7节 Python包和子包的定义步骤

    一、 包的定义步骤

    1. 按照包名创建或使用一个已有目录,目录名就是包名,必须注意包的目录必须位于Python加载模块的搜索路径中(具体请参考《第10.1节 Python的模块及模块导入》关于模块导入的注意事项);
    2. 在该目录内添加一个__init__.py 文件;
    3. 往包内添加模块文件或子包;
    4. 编辑__init__.py文件,用于进行包初始化。
      子包的定义与包类似,唯一区别就是子包不是目录必须位于Python加载模块的搜索路径中,而是子包目录必须位于其上层包所在的目录内。
      二、 案例
      我们来规划一个商品价格查询的目录结构:
      在这里插入图片描述

    老猿将这个包存放在c:PythonSrc这个目录下,且c:PythonSrc这个目录在Python的搜索目录中,其文件目录结构如下:
    在这里插入图片描述
    子包dataaccess的目录文件信息如下:
    在这里插入图片描述
    三、 案例说明
    上述截图中可以看到:
    1、 在包goodspricequery和子包dataaccess下,都有__init__.py文件;
    2、 子包dataaccess是包goodspricequery对应目录的子目录。

    四、 本规划的包的几个源代码

    1. 包goodspricequery的__init__.py文件
    '''package goodspricequery is a example of module and package,inculding:
    1.subpackage:dataacess
    2.module:mainwin
    '''
    print('Start loading packeg:goodspricequery ...')
    goodspricequeryloaded=True
    dataaccessloaded=False
    
    input('Package goodspricequery loaded!Press Enter to exit.')
    
    1. 子包dataaccess的__init__.py文件
    '''package dataaccess is a subpackage of package goodspricequery,inculding:
    1.module:DBaccess
    2.module:goodstype
    3.module:goodsprice
    '''
    print('Start loading dataaccess package ...')
    dataaccessloaded=True
    DBaccessloaded=False
    goodstypeloaded=False
    
    print('Package dataaccess loaded!')
    
    1. DBaccess.py文件
    print("Module:DBaccess start load...")
    def DBaccess():print("I'm DBaccess")
    print("Module:DBaccess loaded.")
    
    1. mainwin.py文件
    print("Module:mainwin start load...")
    def mainwin():print("I'm mainwin")
    print("Module:mainwin loaded.")
    
    1. goodstype.py文件
    print("Module:goodstype start load...")
    goodstypelist={"G1","G2","G3"}
    def goodstype():print("I'm goodstype")
    print("Module:goodstype loaded.")
    
    1. goodsprice.py文件
    print("Module:goodsprice start load...")
    goodspricedict={"G1":2000,"G2":2800,"G3":5000}
    def goodsprice():print("I'm goodsprice")
    print("Module:goodsprice loaded.")
    

    本节介绍了包的定义步骤以及包内子包的定义,并给出了一个包含子包的包目录结构规划以及对应模块及__init__.py的代码文件,通过这些介绍,可以知道Python包的目录构成方式。
    老猿Python,跟老猿学Python!
    博客地址:https://blog.csdn.net/LaoYuanPython

    请大家多多支持,点赞、评论和加关注!谢谢!

  • 相关阅读:
    valueOf与toString
    责任链模式
    Js中Symbol对象
    Vue路由懒加载
    updatedb命令
    策略模式
    Docker(3)- Centos 7.x 下 Docker 镜像加速配置
    Vmware
    Docker(2)- Centos 7.x 下安装 Docker
    Docker(1)- 什么是 Docker
  • 原文地址:https://www.cnblogs.com/LaoYuanPython/p/13643653.html
Copyright © 2011-2022 走看看