人工智能(python)开发 —— 包(package)


一、包的定义

        包是将模块以文件夹的组织形式进行分组管理的方法

二、包的作用

        a、将一系列模块进行分类管理,有利于访问命名冲突
        b、可以在需要时加载一个或部分模块,而不是全部模块

三、包的结构示例

  mypack/
        __init__.py
        menu.py
        games/
            __init__.py
            contra.py
            supermario.py
            tanks.py
        office/
            __init__.py
            excel.py
            word.py
            powerpoint.py
  创建命令:
    mkdir mypack
    cd mypack
    touch __init__.py menu.py
    mkdir games office
    cd games
    touch __init__.py contra.py supermario.py tanks.py
    cd ../office
    touch __init__.py excel.py word.py powerpoint.py

四、__init__.py 文件

          a、__init__.py 是常规包内必须存在的文件
          b、__init__.py 会在包加载时被自动调用
__init__.py作用
        a、编写此包的内容
        b、在内部填写包的文档字符串
        c、在__init__.py文件内可以加载此包所依赖的其他模块

五、包的导入语法

  # 同模块的导入规则相同
  import  包名  [as  包别名]
  import  包名.模块名 [ as  模块新名]
  import  包名.子包名.模块名  [as  模块新名]

  from  包名  import  模块名  [as  模块新名]
  from  包名.子包名  import  模块名  [as  模块新名]
  from  包名.子包名.模块名  import  属性名  [as  属性新名]

  from  包名  import  *
  from  包名.子包名  import  *
  from  包名.子包名.模块名  import  *

六、说明

        当子包或子包内的模块被导入时,上一层的包也会被先导入
例如

import  mypack.games.contra
    # 实质会先导入mypack,再导入games,再导入contra
from  mypack.games  import  tanks

七、包的相对导入

        包的相对导入是指包内的模块的相互导入
语法
        a、from  相对路径包或模块   import   属性或模块名
        b、from  相对路径包或模块   import   *
相对路径
        在 from  xxx  import  语句中,xxx部分可以使用相对路径
        .  代表当前目录
        .. 代表上一级目录
        ... 代表上二级目录
        .... 以此类推
        注:
                a、相对导入时不能超出包的外部
                b、相对导入要避免循环导入

八、包的__all__列表

作用
        用来记录此包中有哪些子包或模块需要导入
        当用from  包  import  *语句导入时,只查找__all__中的模块或子包
说明
        __all__列表只在from   xxx   import  *  语句时起作用



九、附录

        人工智能(python)—— 目录汇总



猜你喜欢

转载自blog.csdn.net/qq_27297393/article/details/80752686
今日推荐