python中的import、from import及import as的區別解析

首先介紹一下import和include的區別或者說import相對include的好處:

import導入的內容隻會被包含一次,在引入之前會檢測是否已經存在該模塊,不存在才會被引入,而include是不會做判斷的。使用import在遞歸包含的時候不會出錯,不會引起交叉編譯的問題。此外,使用include引入頭文件對其引入順序也有一定的要求。

import

import是python提供的用於導入模塊的機制,導入是的整個模塊的內容。模塊可以是py、pyc、pyd,可以是系統自帶的,也可以是自定義的。使用語法:#import os

python中所有加載到內存的模塊都存放到sys.modules中,在引入一個模塊之前,會先在列表中查找是否已經加載瞭該模塊,如果已經加載則隻用將模塊的名字加入到正在調用import模塊的local名字空間中;沒有加載則將該模塊載入到內存,並存放到sys.modules中。

from import

用於導入一個模塊中的某一個部分,比如一個函數或者一個類等。使用語法:from os import path 表示引入os模塊中的path

import as

用於引入一個模塊的同時為該模塊取一個別名。使用語法:import multiprocessing as mp 表示引入multiprocessing模塊並取別名為mp,在該文件的後續調用中mp就相當於是multiprocessing。

Python中import的as語法

在Python中,如果import的語句比較長,導致後續引用不方便,可以使用as語法,比如:

import dir1.dir2.mod

那麼,後續對mod的引用,都必須是dir1.dir2.mod
dir1.dir2.mod.X
那麼,為瞭簡化輸入,可以使用as語法:

import dir1.dir2.mod as m

那麼,後續對mod的引用,可以直接使用m
m. X

需要註意的是,使用as語法之後,隻能通過as後面名字來訪問導入的moudle

import mod as m
m.X # OK
mod.X # Error

下面提供as的完整語法格式,import和from都支持:

import modulename as name # 隻能通過name來引用
from modulename import attrname as name # 隻能通過name來引用

到此這篇關於python中的import、from import及import as的區別解析的文章就介紹到這瞭,更多相關python import from import內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: