模块

模块

模块:一系列功能的集合体

定义模块:创建一个py文件就是一个模块,该py文件名就是模块名

使用模块:在要使用模块的文件中,通过 import 模块名 来导入模块

imoport module

  1.编译执行模块所对应的的py文件,形成对应的pyc文件

  2.产生该模块自己的全局名称空间

  3.在使用该模块的全局名称空间中产生一个名字(导入的模块名)

  注:

    ①每一个都会产生全局的名称空间,且相互不影响

    ②多次导入,只会编译执行模块一次,将其加载到内存,之后的都是直接对名字的引用

  优点:

    ①从文件级别组织代码,使同特性的功能能统一管理

    ②可以使用系统或第三方模块(拿来主义),来提高开发效率

起别名

  通过as关键字可以给模块起别名:模块一旦起名,原模块名就不能再使用

  优点:

    ①可以简化模块名字

    ②可以统一功能

    cmd=input(‘数据库选择 1:mysql     2:oracle’)

    if cmd ==‘1’

      import mysql as db

      #mysql.excuse()

    else:

      import oracle as db

      #oracle.excuse() 

    db.excuse()

    #中是可以省略的代码

from导入

  from 模块名 import 名字1,名字2......名字n

  from 模块名 import *

  #导入的是模块中__all__这个列表

    ①系统默认该列表不会收录_开头的名字

    ②可以自定义__all__列表来规定外界通过*可以导入的名字

  注:

    不建议直接导入*,因为可读性差,且极容易出现变量重名

    (比如在导入模块中的a后执行的全局名称空间中再次定义了a,那么导入模块中的a就无法找寻了)

自执行(脚本)与模块区别

  __name__

  ①在py文件作为模块使用的时候,__name__为模块名

  ②在py文件自执行时,__name__为字符串‘__main__’

  所以可以用 if  __name__==‘__main__’来判断

模块的四种存在方式

  ①使用python编写的.py(任意一个py文件可以作为模块)

  ②包:一堆py文件的集合体

  ③使用C编写并链接到python解释器的内置模块

  ④已被编译为共享库或DLL的C或C++扩展

  

    

 

 

posted @ 2019-04-08 19:35  Mr-Bear  阅读(99)  评论(0编辑  收藏  举报