• 包导入基础知识


    # -*- coding: utf-8 -*-
    #python 27
    #xiaodeng
    #包导入基础知识
    
    
    #注意:
    #除了模块名之外,导入也可以指定目录路径。python代码的目录就称为包,因此这类导入就称之为包导入。
    #实际上,包导入时把计算机上的目录变成另一个python命名空间,而属性则对应于目录中所包含的子目录和模块文件。
    #这是高级特征,他提供了层次,对于组织大型系统内的文件很方便。而且可以简化模块搜索路径的设置。
    
    
    
    #包导入的运作机制:
    #在import语句中列举简单文件名的地方,可以改成列出路径的名称,彼此以点号相隔。
    #需要有__init__语句
    
    import dir1.dir2.mod    #主要要是python所能搜索到的路径才行。
        #dir1:表明机器上有一个dir1目录
        #dir2:表明dir1内部包含dir2目录
        #mod:dir2目录下有一个mod.py文件
    
    
    #__init__包文件
    #如果选择使用包导入,就必须多遵循一条约束:包导入语句的路径中的每个目录内都必须有__init__.py文件。【注意是每个目录】
    #如上例子,在dir1和dir2目录下面都必须包含__init__.py文件。
    #容器目录dir() 也就是顶层目录不需要这类文件,因此其本身没有列在import语句之中。
    
    
    
    
    #__init__.py文件需要遵循的规则:
    #dir1和dir2都必须包含一个__init__.py文件
    #dir()是容器,不需要__init__.py文件,即便是有,这个文件也会被忽视。其语言本身做了处理
    #dir()必须列在模块搜索路径上(即:此目录必须是主目录,或者列在pythonpath之中)
    #结构基本说明:
    dir()
        dir1
            __init__.py
            dir2
                __init__.py
                mod.py
    #__init__.py本身扮演了包初始化的钩子,替目录产生模块命名空间及使用目录导入时实现from行为的角色
    
    
    
    #包初始化:
    #python导入某个目录时,会自动执行该目录下__init__.py文件中的所有程序代码。因此,这类文件自然就是
    #放置包内文件所需要初始化的代码的场所。
    
    
    #模块命名空间的初始化
    #在包导入的模型中,脚本内的目录路径,在导入后会变成真实的嵌套对象路径。
    
    
    #from*语句的行为
    #作为一个高级功能,可以在__init__.py文件内使用__all__列表来定义目录以from*语句形式导入。
    #__all__,上面会列出应该导入的子模块的名称清单。
  • 相关阅读:
    第二周作业
    第一周作业
    抓老鼠啊~亏了还是赚了?
    打印沙漏
    寒假作业2
    我与老师
    自我介绍
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周实验报告(五)&周总结
  • 原文地址:https://www.cnblogs.com/dengyg200891/p/4921937.html
Copyright © 2020-2023  润新知