zoukankan      html  css  js  c++  java
  • python 零基础学习之路-05 模块与包

    一 模块

      1、模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能。

      2、模块的特点:从文件级别组织程序,更方便管理;拿来主义,提升开发效率。

      3、使用模块之import:模块可以包含可执行的语句和函数的定义,这些语句的目的是初始化模块,它们只在模块名第一次遇到导入import语句时才执行(import语句是可以在程序中的任意位置使用的,且针对同一个模块很import多次,为了防止你重复导入,python的优化手段是:第一次导入后就将模块名加载到内存了,后续的import语句仅是对已经加载到内存中的模块对象增加了一次引用,不会重新执行模块内的语句)

      4、在第一次导入模块时会做三件事,重复导入会直接引用内存中已经加载好的结果:

          1、为原文件(spam模块)创建新的名称空间,在spam中定义的函数和方法若是使用到了global时访问的就是这个名称空间。

          2、在新创建的命名空间中执行模块中包含的代码,见初始导入import spam。

          3、创建名字spam来引用该命名空间。

      5、使用模块之from...import:与import相比,唯一的区别就是使用from...import...则是将spam中的名字直接导入到当前的名称空间中,所以在当前名称空间中,直接使用名字就可以了、无需加前缀:spam。

      6、from...import *   即引入模块所有。

         被引用模块可以使用__all__来控制*(用来发布新版本),在spam.py中新增一行。

         eg: __all__=['money','read1']   #这样在另外一个文件中用from spam import *就这能导入列表中规定的两个名字

      7、py文件区分两种用途:模块与脚本

         编写好的一个python文件可以有两种用途:
              一:脚本,一个文件就是整个程序,用来被执行
              二:模块,文件中存放着一堆功能,用来被导入使用

         python为我们内置了全局变量__name__,
              当文件被当做脚本执行时:__name__ 等于'__main__'
              当文件被当做模块导入时:__name__等于模块名

         作用:用来控制.py文件在不同的应用场景下执行不同的逻辑
              if __name__ == '__main__'

      8、模块搜索路径:

         模块的查找顺序是:内存中已经加载的模块->内置模块->sys.path路径中包含的模块

    二 包(了解,包随处可见)

      1、什么是包:包就是一个包含有__init__.py文件的文件夹,所以其实我们创建包的目的就是为了用文件夹将文件/模块组织起来。创建包的目的不是为了运行,而是被导入使用,记住,包只是模块的一种形式而已,包的本质就是一种模块。

      2、包的使用import:

        eg:   import glance.db.models

        eg:   from glance.api import *

      3、绝对导入与相对导入: 

        绝对导入:以glance作为起始

        相对导入:用.或者..的方式最为起始(只能在一个包中使用,不能用于不同目录内)

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

    三 软件开发规范

  • 相关阅读:
    [Python]打印Python的版本信息
    [Python]YIELD_2
    [Python]YIELD_1
    [Linux]查看Linux版本信息
    [Python]Python的class(类)中的object是什么意思
    [Linux]Linux里查看所有用户
    [Python]NEXT方法
    [Linux]主机配置互信
    [Linux]重启命令【echo "b" > /proc/sysrq-trigger】和【reboot】
    [Python]利用PDB来进行Python调试
  • 原文地址:https://www.cnblogs.com/liuzeng/p/9067810.html
Copyright © 2011-2022 走看看