Python教程:import与from ... import ...的区别

枫铃3年前 (2021-09-30)Python244

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中导入基础模块

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#!/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来导入模块

相关文章

利用python同步windows和linux文件

写python脚本的初衷,每次在windows编辑完文件后,想同步到linux上去,只能够登录服务器,...

爬虫基本原理

爬虫基本原理 一、爬虫是什么? 百度百科和维基百科对网络爬虫的定义:简单来说爬虫就是抓取目标网站内容的工具,一般是根据定义的行...

Django 函数和方法的区别

函数和方法的区别 1、函数要手动传self,方法不用传 2、如果是一个函数,用类名去调用,如果是一个方法...

Django 知识补漏单例模式

单例模式:(说白了就是)创建一个类的实例。在 Python 中,我们可以用多种方法来实现单例模式&#x...

Django基础知识MTV

Django简介 Django是使用Python编写的一个开源Web框架。可以用它来快速搭建一个高性能的网站。 Django也是一个MVC框架。但是在Dj...

Python mysql 索引原理与慢查询优化

一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。