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__ 可以进行区分何时执行。

  • 相关阅读:
    linux centos 常用命令(需掌握)
    centos轻松搭建NFS
    Centos6.1在yum安装软件的时候,居然报错了,如何解决
    安装好Centos后,需要做的几件事情。
    使用scp命令传输文件
    批量删除文件或者批量修改文件
    Centos7搭建常用的LNMP架构
    python实现自动抠名字签名,比PS还快
    inotify软件实现实时同步,ssh-key 秘钥连接方式,saltstack实战批量管理Linux,expect批量分发秘钥
    Cisco 路由器配置OSPF 动态路由 (开放式最短路径优先)
  • 原文地址:https://www.cnblogs.com/purewhite/p/10691688.html
Copyright © 2011-2022 走看看