模塊導入的五種方式
1、import 模塊名
2、from 模塊名 import 方法名
3、from 模塊名 import *
4、import 模塊名 as 別名
5、from 模塊名 import 方法名 as 別名
注意:import可以在程序中的任意位置使用,第一次使用import關鍵字導入模塊后,會將模塊加載到內存中,后續針對同一模塊的import不會重新執行模塊內的語句。
第一次導入模塊執行的三件事
1、創建一個以模塊的名稱空間
2、執行這個名稱空間里面的代碼
3、可以通過 模塊名 '.'的方式引用模塊內的變量、方法等。
import與from…import導入的對比
1、import需要通過點的方式來引用模塊中的元素
2、from…import是將原模塊中的變量直接引入到現有空間,不需要通過點的方式來引用
3、但是from…imort導入的這種方式會存在變量名沖突的問題
from … import *
把模塊中所有的不是以下划線(_)開頭的名字都導入到當前位置
python文件的兩種功能
一個編寫好的python文件可以有兩種用途:用作腳本;用作模塊
腳本:一個文件就是整個程序,用來被執行
模塊:文件中存放着一堆功能,用來被導入使用
在python中,為我們提供了一個全局變量 name
當文件被當做腳本時執行時:name 等於’main’
當文件被當做模塊導入時:name 等於 模塊名
模塊搜索路徑
模塊的引用也是按照一定的順序進行引用的
這個順序是:先從內存中已經加載好的模塊尋找,如果沒找到則從內置模塊中查找,如果內置模塊也找不到,那么接下來就去sys.path中路徑包含的模塊中尋找。如果還找不到就會報錯
注意python中import和from import 的區別
首先明確:盡量不要為了圖省事使用from xxx import *
python中有兩種導入模塊的方式,一種是import xxx,另一種是from xxx import yyy,兩者的區別在於,
第一種僅僅導入一個模塊,並且將該模塊執行了一遍,if __main__ =="__main__"里面的沒有執行。同時,有在當前的命名空間中導入變量,需要通過xxx.yyy的方式使用導入模塊中的變量、函數、類等;
第二種則將模塊中的變量yyy導入了當前命名空間,因此使用時可以直接以yyy調用,使用這種導入方法時,需要注意當前的命名空間是否有重名的,from xxx import *這種方式盡量不要使用,因為這樣就破壞了對命名空間的管理。
ps:使用from xxx import *時是不能導入以單下划線開頭的保護屬性和以雙下划線開頭的私有屬性的
首先你要了解 import 與 from…import 的區別。
import 模塊:導入一個模塊;注:相當於導入的是一個文件夾,是個相對路徑。
from…import:導入了一個模塊中的一個函數;注:相當於導入的是一個文件夾中的文件,是個絕對路徑。
所以使用上的的區別是當引用文件時是:
import //模塊.函數
from…import // 直接使用函數名使用就可以了
所以
from…import *:是把一個模塊中所有函數都導入進來; 注:相當於:相當於導入的是一個文件夾中所有文件,所有函數都是絕對路徑。
結論:
from…import *語句與import區別在於:
import 導入模塊,每次使用模塊中的函數都要是定是哪個模塊。
from…import * 導入模塊,每次使用模塊中的函數,直接使用函數就可以了;注因為已經知道該函數是那個模塊中的了。