zoukankan      html  css  js  c++  java
  • 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__ 可以进行区分何时执行。

  • 相关阅读:
    使 Inno Setup 打包出的安装程序以管理员身份运行
    SQL SERVER 数据库被标记为“可疑”的解决办法
    SQL SERVER 查看数据库信息
    【转】如何正确地处理时间
    如何获取 XAML 控件的模板代码
    Asp.Net MVC 把PartialView、View转换成字符串
    表达式树在LINQ动态查询
    ASP.NET MVC5 实现分页查询
    WPF
    正则表达式定义
  • 原文地址:https://www.cnblogs.com/purewhite/p/10691688.html
Copyright © 2011-2022 走看看