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來導入模塊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM