模块

1.模块是什么:   *****

  模块是一组功能的集合

  python中一个功能就是一个函数

  一个py文件就是一个模块

例如:   A.py    文件名A.py    模块名  A

模块的分类:

  1.自定义模块 *****

    (第三方模块也属于自定义  他是别的程序员写的)

      关注如何自定义

  2.内置函数  ****

    是C语言写的  然后连接到朋友python解释器中

    例如 :  time模块

      关注如何使用

  3.已经编译为DLL    C 或c++   ***

    不需要知道是怎么来的  会用就行

  4  包    *****

    包实际上是包含一堆模块的文件夹

     

对于以上四种模块 ,他们的使用方式  是一致的

如何定义模块:  *****

  创建一个py文件  把你的功能写到文件中去

如何使用模块:***** 

  import   关键字   用于导入模块到当前文件夹中

    例如:  import  time

当执行import 做了什么?  ****

  1.创建了一个命名空间

  2.执行被导入的py中的代码  将里面的名字和对应关系 储存到命名空间中

  3.在执行文件中 创建一个名字 改名字指向的地址就是 第一步创建的命名空间(模块的命名空间)

  

执行文件和被导入的模块的命名空间 是相互独立的 ****

  在被导入模块中 所有的名字使用的都是自己空间中的  和调用者无关

import  的其他写法  *****

  1.import  xxx  as  xxx

    给模块取别名   用于简化书写

  2.import  xxx,xxxxx

    一次导入多个模块

  3. from xxx  import xxx

    从模块中导入某个名字到当前名称空间

    注意  要避免名称冲突

    如果冲突了  按照就近查找原则

  4.from xxx import xxx,xxx,xxxx

    从模块中导入多个名称

  5.from xxx import *

    从模块中导入所有名称

    __all__用于控制 使用者可以使用那些名称

  6.from xxx import xx as xx

    取别名

  from 和import 除了导入的名称 不同 其他特性一致

py文件的两种执行方式 *****

  1.作为执行文件   (右键run)

  2.作为模块被导入

  __name__这个名称 可以获取当前执行状态

  如果是__main__说明是当前执行文件

  否者 说明是作为模块

  于是乎有了以下代码

    if__name__=="__main__" :

      print ("作为执行文件")

    else:

      print("作为模块导入了")

      

原文地址:https://www.cnblogs.com/frank007/p/9772995.html