• day20 模块引入的一些说明


    概念

      模块导入多次也是只导入一次,sys.modules 里面会查看有没有被导入。

      导入后的模块内部的函数,变量就都可以拿来用了。

      给模块起别名,可以提高代码的兼容性:

        ps:import  time  as  t

        但是被起别名的模块之前的名字无法再次被调用。

      

      为增加可读性,遵循原则:

        模块的引入最好不要一起引入,而且导入的时候最好在一开始的时候导入。

        导入模块的顺序:先导入内置的,再导入扩展的(比如Django),最后再导入自定义的。

        可导入整个模块,或者只导入模块的单个变量或者函数,导入的时候变量名完全不冲突的。

          import demo

          from demo import money,read

        用 * 的时候很危险会导致变量重名,在被调用的时候如果重命名会被覆盖的,重命名会冲突。

    所有的模块导入都应该尽量往上写:

    1. 内置模块
    2. 扩展模块
    3. 自定义模块

    模块不会被重复被导入:sys.modules

    从哪儿导入模块:sys.path

    import 模块名
        模块名.变量名  和本文件中的变量完全不冲突
    
    import 模块名 as 重命名的模块名:提高代码的兼容性
    
    import 模块1,模块2
    from 模块名 import 变量名
        直接使用 变量名 就可以完成操作
        如果本文件中有相同的变量名会发生冲突
    
    from 模块名 import 变量名 as 重命名变量名
    
    from 模块名 import 变量名1,变量名2
    
    from 模块名 import *
      将模块中的所有变量名都放到内存中
      如果本文件中有相同的变量名会发生冲突
    
    from 模块名 import * 和 __all__ 是一对
      如果没有这个变量,就会导入所有的名字
      如果有all,只导入all列表中的名字

    模块一导入就会执行,有时候会执行很多你不想他马上就执行的东西,就可以用 __name__ 来筛选出来。

    当我们直接执行这个模块本身的时候,__name__ =  '__main__'

    当我们执行其他模块,在其他模块中引用这个模块时,这个模块中的 __name__ =  '模块的名字'

    利用 if 判断是否等于 __main__ 可以进行区分何时执行。

  • 相关阅读:
    docker Dockerfile文件的编写部分命令
    docker命令总结
    docker安装笔记
    在docker容器下利用数据卷实现在删除了mysql容器或者镜像的情况下恢复数据
    在docker下运行mysql
    mysql在docker下运行,出现中文乱码
    group by问题
    python中安装requests后又提示错误
    python安装HTMLTestRunner
    python接口测试中安装whl格式的requests第三方模块
  • 原文地址:https://www.cnblogs.com/purewhite/p/10691688.html
Copyright © 2020-2023  润新知