python学习——模块

  • #什么是模块?
    • #已经写好的一组功能的集合
    • #别人写好的函数、变量、方法、放在一个文件里(这个文件可以被我们直接使用)
    • # import os,re,sys,time
  • #如何自己写一个模块
    • # 当创建.py文件,给他起个名字符合变量名命名规则的文件名,这个名字就是模块名
  • # 模块的导入
    • # import time
    • #怎么使用time模块中的名字
      • # time.time()
    • # import 的命名空间
      • #import的模块和当前文件在不同的命名空间中
    • #模块是否可以被重复导入
      • # 不可以
    • #怎么判断这个模块已经被导入过了
      • # print(sys.modules)
    • #在导入模块的时候发生了什么?
      • #找到这个模块
      • #判断这个模块是否被导入过了,如果没有被导入就创建一个属于这个模块的命名空间,让模块的名字指向这个空间
      • #执行模块
      • #给模块起别名,起了别名之后使用这个模块只能使用别名引用变量
    • # import time as t,re as r
      • #导入多个模块
      • #规范建议导入顺序:先导入内置、然后导入扩展模块、最后导入自定义模块
    • # from time import gmtime
      • #如何使用from import
      • #需要从一个文件中使用哪个名字,就把这个名字导入进来
      • #from import的过程中仍然会执行这个被导入的文件
      • # import谁就只能用谁
      • #当前文件的命名空间和模块的命名空间
      • #from import导入的过程中发生了什么
        • #1.找到模块
        • #2.判断是否被导入过
        • #3.如果没被导入过
          • #创建一个属于这个模块的命名空间
            • #执行这个文件
          • #给你要导入的变量
          • #给你要导入的变量创建一个引用,指向要导入的变量
      • #导入多个名字
        • #from time import time as t,gmtime as g
      • #from time import *
        • #导入time模块中的多有内容
      • #from time import *和__all__的关系
        • #__all__在模块中约束了*导入的变量,
  • #1.模块的循环引用***
    • #模块之间不允许循环引用
  • #2.模块的加载与修改**
    • #已经被导入的模块发生了修改,是不会被感知到的
    • #所以要想修改的模块被正在运行中的程序感知到,只能重启程序
  • #3.把模块当成脚本使用*****
    • #if __name__ == '__main__':
      • #代码(写在这里面的代码只有这个文件当做脚本执行的时候才会被执行)
    • #执行一个文件的方式
      • #cmd、pycharm执行:直接执行文件——以脚本的方式执行
      • #导入这个文件
      • #都是py文件
        • #直接运行这个文件,这个文件就是脚本
        • #导入这个文件,这个文件就是模块,
    • #当一个py文件
      • #当做一个脚本的时候:能够独立的提供一个功能,能自主完成交互
      • #当做一个模块的时候:能够被导入者调用这个功能,不能自主交互
    • #一个文件中的__name__变量
      • #当这个文件当做脚本执行的时候__name__ =='__main__'
      • #当这个文件当做模块导入的时候__name__ =='模块的名字'
  • #4.模块搜索路径
    • #和被当做脚本执行的文件同目录下的模块,可以被直接导入
    • #除此之外其他路径下的模块再被导入的时候需要自己改sys.path列表

猜你喜欢

转载自www.cnblogs.com/bilx/p/11366758.html