• 第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

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

  • 相关阅读:
    windwos8.1英文版安装SQL2008 R2中断停止的解决方案
    indwows8.1 英文版64位安装数据库时出现The ENU localization is not supported by this SQL Server media
    Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
    SQL数据附加问题
    eclipse,myeclipse中集合svn的方法
    JAVA SSH 框架介绍
    SSH框架-相关知识点
    SuperMapRealSpace Heading Tilt Roll的理解
    SuperMap iserver manage不能访问本地目的(IE9)
    Myeclipse中js文件中的乱码处理
  • 原文地址:https://www.cnblogs.com/LaoYuanPython/p/13643653.html
Copyright © 2020-2023  润新知