zoukankan      html  css  js  c++  java
  • python学习手册笔记——23.模块包

    00.除了模块名之外,导入也可以指定目录路径。Python代码的目录就是包。

    01.选择点号语法、一部分是考虑到跨平台,但也是应为import语句中的路径编程实际的嵌套的对象路径。这种语法也意味着,如果你忘了import语句中省略.py,就会得到奇怪的错误信息。

    02.


    03.from * 语句的行为:作为一个高级功能,你可以在__init__.py文件内使用__all__列表来定义目录以from*语句形式导入时,需要导出什么。在__init__.py文件中,__all__列表时指当包(目录)名称使用from*的时候,应该导入的字模块的名称清单。

    04.__init__.py包文件:包导入语句的路径中的每个目录内都必须有__init__.py这个文件,否则导入包会失败。

    05.包让导入更具信息性,并可以作为组织工具,简化模块的搜索路径,而且可以解决模糊性。

    06.决定自己的系统中使用每一个utilities.py文件内的一些程序代码。

    07.


    08.他们需要位于统一包中的模块,而不是位于模块导入搜索路径上某处的模块(绝对导入)

    09.from .spam import name:意味着"从名为spam的模块导入变量name,而这个spam模块域包含这条语句的文件位于同一个包下"

    10.


    11.模块查找规则总结:
    *简单模块名通过搜索sys.path路径列表上的每个目录来查找,从左到右进行。
    *包时带有一个特殊的__init__.py文件的Python模块的直接目录,这使得一个导入中可以使用A.B.C目录路径语法。
    *在一个包文件中,常规的import语句使用和其他地方的导入一样的sys.path搜索规则。

    12.相对导入语法实际上时一种绑定声明,而不是一种偏好,注意到这点很重要。

  • 相关阅读:
    收藏文章整理
    关于java里的SimpleDateFormat使用
    手写MQ框架(四)-使用netty改造梳理
    JDK8中的ConcurrentHashMap源码
    JDK8中的HashMap源码
    手写MQ框架(三)-客户端实现
    手写MQ框架(二)-服务端实现
    Vue.js入门
    Tomcat启动找不到项目依赖jar的解决方式
    java课堂 动手动脑2
  • 原文地址:https://www.cnblogs.com/aixiaoxiaoyu/p/11215678.html
Copyright © 2011-2022 走看看