zoukankan      html  css  js  c++  java
  • 包的介绍

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

  • 相关阅读:
    设置lable内容不上下居中
    iOS中webView加载URL需要处理特殊字符
    搞一个app需要多久?
    戏说HTML5
    限制UITextField/UITextView的输入字数与中文输入之后的英文换行问题
    iOS6以后的单个控制器横竖屏显示以及旋转屏控制技巧,附带iOS8以后显示电池状态栏
    纯命令行教你Cocoapods的安装和使用
    iOS开发之各种动画各种页面切面效果
    UITextView/UITextField检测并过滤Emoji表情符号
    类里面的大括号{}加载顺序
  • 原文地址:https://www.cnblogs.com/kp1995/p/10072601.html
Copyright © 2011-2022 走看看