• 包的介绍


    1,什么是包?

      包是一种通过'.模块名'来组织python名称空间的方式

      通俗的开讲: 包就是一个具有__init__.py文件的文件夹,所以创建包的意义就是用一个文件将文件/模块组织起来

    强调:

      1),在python3中,即是包下没有__init__.py文件,import包仍然不会报错,而在python2中,包下一定要有__init__.py文件,否则import包就会报错

      2), 创建包的目的不是为了运行,而是被导入使用,包只是模块的一种形式,包的本质就是一种模块

    2, 为何要使用包?

      包的本质就是一个文件夹,那么文件夹唯一的功能就是将文件组织起来. 随着功能越写越多,我们无法将所有功能都放到一个文件中,于是我们使用模块去组织功能,而随着模块越来越多,我们就需要用文件夹将模块文件组织起来,以此来提高程序的结构性和可维护性

    3,包的使用之 import

      单独导入包名称时不会导入包中所有包含的所有子模块

    #在与glance同级的test.py中
    import glance
    glance.cmd.manage.main()
    
    '''
    执行结果:
    AttributeError: module 'glance' has no attribute 'cmd'
    
    '''

    4, 包的使用之 from...import...

      需要注意的是from后import导入的模块,必须是明确的一个不能带点,否则会有语法错误

    5, 想要从包中导入所有,如果按照模块内导入所有的方法实际上只会导入包下__init__.py文件中定义的名字,可以在文件中定义__all__

    6, 包以及包所包含的模块都是用来被导入的,而不是被直接执行的.而环境变量都是以执行文件为准的

    7, 绝对导入与相对导入总结

      绝对导入: 以执行文件的sys.path为起始点开始导入,称之为绝对导入

        优点: 执行文件与被导入的模块中都可以使用

        缺点: 所有导入都是以sys.path为起始点,导入麻烦

      相对导入: 参照当前所在文件的文件夹为起始开始查找,称之为相对导入

        符号:  . (一个点)代表当前所在文件的文件夹,  ..(两个点)代表上一级文件夹,  ...(三个点)代表上一级的上一级文件夹

        优点: 导入更加简单

        缺点: 只能在导入包中的模块时才能使用

      注意:  1),相对导入只能用于包内部模块之间的相互导入,导入者与被导入者都必须存在于一个包内

         2), 试图在顶级包之外使用相对导入是错误的,言外之意,必须在顶级包内使用相对导入,每增加一个,代表调到上一级文件夹,而上一级不应该超出定级包.

  • 相关阅读:
    SoapUI 使用笔记
    git 使用笔记(二)
    git 使用笔记(一)
    jquery 拓展
    hdu 1024 Max Sum Plus Plus (DP)
    hdu 2602 Bone Collector (01背包)
    hdu 1688 Sightseeing (最短路径)
    hdu 3191 How Many Paths Are There (次短路径数)
    hdu 2722 Here We Go(relians) Again (最短路径)
    hdu 1596 find the safest road (最短路径)
  • 原文地址:https://www.cnblogs.com/kp1995/p/10072601.html
Copyright © 2020-2023  润新知