zoukankan      html  css  js  c++  java
  • import与from ... import ...的区别

    from 不修改,import会修改
    1、语法分析:首先from A import a1 是从A模块导入a1工具(可以是某个 函数,全局变量,类),import A是导入整个A模块的全部内容(包括全部的函数,全局变量,类)。
    2、内存分析:from...import...会在内存中创建并加载该模块工具的副本,当有另外一个程序导入时,会在内存中创建另一个副本进行加载,不会共用一个副本,所以程序进行的修改不会影响到被导入的原模块,且不同程序之间不会互相影响。 import...方法导入模块会在内存中直接加载该模块的全部属性。当出现多个程序导入该模块时,会共用一个模块,程序之间会互相影响,包括原模块
     
    图文解释:
    (1)创建基础模块
    #model_a.py 
    a=3 
    b=4
    (2)from...import...导入模块,控制台输出
    #第一个脚本model1导入基础模块,并修改基础模块的值
    #!/usr/bin/python 
    from model_a import a,b
    import model2 
    print a 
    print b 
    a=5 
    print a 
    print b 
    print model2.sum()#查看model1中修改数据时是否会影响到model2
    #第二个脚本model2中导入基础模块
    #!/usr/bin/python 
    import model_a 
    print '2',model_a.a 
    print '2',model_a.b 
    def sum(): 
        return model_a.a+model_a.b
    输出为:
    2 3
    2 4
    3
    4
    5
    4
    7
    使用from model_a import a,b后,在model1中修改a的值没有影响到model2中
    (3)import...导入模块,控制台输出
    #在model1中使用import的方式导入model_a
    #!/usr/bin/python 
    import model_a 
    import model2 
    print model_a.a 
    print model_a.b 
    model_a.a=5 
    print model_a.a 
    print model_a.b 
    print model2.sum()
    输出为:
    2 3
    2 4
    3
    4
    5
    4
    9
    使用import model_a后,在model1中修改a的值影响到了model2中
     
    3、from...import * 属于from...import...,只不过是加载了模块的全部属性。
    总的来说:
    1)import和from-import的显著区别
    2)当多个程序需要同时导入一个模块并且都是访问时,使用import 可以节省内存空间
    3)当多个程序需要同时导入一个模块当其中一个需要修改模块,那么修改的模块的程序应该使用from来导入模块

  • 相关阅读:
    Lodash之throttle(节流)与debounce(防抖)总结
    css伪类:before及:after除了插入文字内容还能做点儿啥?画图
    一点对Promise的理解与总结
    前端开发常用网站汇总
    一分钟配置好JDK
    启动任务管理器命令符,doc命令
    判断是否是质数以及类型的转换
    图片数字型的九九乘法表
    1000以内的质数的方法,判断年份是否是闰年,打印水仙花数
    持续交付8-数据管理
  • 原文地址:https://www.cnblogs.com/mianbaoshu/p/14024649.html
Copyright © 2011-2022 走看看