模块介绍

·#模块

  • py文件就是一个模块
  • 模块的分类
    • 内置模块
    • 第三方模块
    • 自定义模块

#模块的作用

#模块的使用

import(导入)

  • import 模块名(将模块中的所有内容导入)
  • from 模块名 import 功能 (将模块中的某个功能导入)
  • from 模块名 import a,b,c (将同一模块中的a、b、c功能导入)
  • from 模块名 import * (将模块下的所有功能导入)
  • from 模块名 import a as AAA (将模块中的a功能导入并起别名为AAA)
模块导入发生的事情:
	1.将模块存储到当前名称空间中
	2.以模块的名字命名,并开辟空间
	3.通过模块名来使用模块中的功能

模块的导入顺序

  • 内存 》内置=》sys.path

模块的两种用法

  • 当做普通模块执行
  • 被当做脚本执行

——name——

__ name__就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__main__,通过if判断这样就可以执行“mian:”后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“mian:”后面的内容。

if __name__ == "  ":
  • 当前文件中执行__name__获取的值就是‘main
  • 当前文件被当做模块导入时,__name__获取到的就是当前文件名,当获取的不否时,就会停止

——all——

  • 在——init——.py中

    __all__=["module_a","module_b"]  ##只用
    在使用 from package_name import * 时 , 表示import 该package 中的 两个module及 两个module相关的类、方法等。
    
  • 在普通的*.py文件中

    __all__=["class_name","function_name"] 
    在使用 from module_name import * 时,表示import 该module中的__all__中所列出的。
    
  • 注意事项

    1.在普通的*.py中, 使用__all__ 时,可以使用__all__列出的 类、函数、变量等,不使用__all__时会使用module中的所有不以下划线开头的成员。
    2.__all__只能影响到 from import * 这种import 方式, 对于from import 的 import 方式没有影响。
    
    
    3.__all__ 的数据类型:List or Tuple (不确定, 待验证其他)
    

import和from对比(推荐使用from)

  • import全部导入
  • from指定功能导入
  • 两者都支持as
  • from会将之前定义同名的覆盖
  • from一行可以导入多个功能,也可导入全部功能
  • import建议一行导入一个模块
原文地址:https://www.cnblogs.com/Nayears/p/12166485.html