導入模塊名
模塊是可以交互使用或從另壹個Python程序訪問的代碼段。只要導入了壹個模塊,就可以引用它的任何公共函數、類或屬性。模塊可以以這種方式使用其他模塊的功能。
用import語句導入模塊會在當前命名空間中建立對該模塊的引用。該引用必須使用全名,也就是說,當使用導入模塊中定義的函數時,它必須包括模塊的名稱。所以不能只用funcname,要用modname.funcname。
方法2
從modname導入funcname
從modname導入fa、fb、fc
或者
從modname導入*
與1方法的區別:funcname直接導入到本地命名空間中,因此可以直接使用,無需添加模塊名稱的限定*。模塊的所有公共對象都被導入到當前命名空間中,也就是說,任何不以“_”開頭的對象都將被導入。
Modname未定義,因此modname.funcname的此方法不起作用。此外,如果funcname已被定義,它將被新版本(導入模塊中的版本)替換。如果funcname被更改為指向其他對象,modname會忍不住註意到。
建議:
1)如果要經常訪問模塊的屬性和方法,並且不想反復鍵入模塊名稱,請使用“從模塊導入”。
2)如果您想選擇性地導入壹些屬性和方法,而不是其他屬性和方法,請使用從模塊導入。
3)如果某個模塊包含與您的某個模塊同名的屬性和方法,則必須使用導入模塊來避免名稱沖突。
4)盡可能少地使用from module import *,因為很難確定某個特殊函數或屬性來自何處,並且它會使調試和重構更加困難。
方法3
內置函數__import__()
除了使用import關鍵字的前兩種方法外,我們還可以使用內置函數__import__()來導入模塊。它們之間的區別是import後面必須跟壹個類型,而__import__()的參數是壹個字符串,它可能來自配置文件,也可能是表達式計算的結果。例如:
mymodule = _ _ import _ _(‘module _ name‘)
註意:
1)模塊的內容都放在壹個模塊文件中,例如mymodule的內容應該放在PYTHONPATH目錄下的壹個mymodule.py中,c實現的除外。
2)壹個包可以組織幾個模塊名稱空間。例如,A.b表示包a中的子模塊B。
您可以單獨導入子模塊,例如Python文檔中給出的示例。
導入聲音。效果。回聲
這樣,您必須使用全名來引用內部的對象,例如
聲音。效果。回聲。回聲濾波器(輸入、輸出、延遲= 0。7、衰減=4)
您還可以使用以下語句來加載echo子模塊。
從聲音。效果導入回聲
它也可以在沒有包前綴的情況下使用,因此可以按如下方式調用它:
echo.echofilter(輸入、輸出、延遲=0.7、衰減=4)
不建議使用import *從包或模塊中導入所有模塊,因為這通常會導致可讀性較差。
從包導入specific _ submodule的用法沒有錯。事實上,仍然建議這樣做,除非導入的模塊需要使用其他包中同名的子模塊。
綜上所述,壹般情況下應該使用import,但也有幾個例外。
模塊文檔告訴您使用從導入
2)導入包組件。您需要壹個包中的子模塊。壹般來說,從A.b導入c比導入A.b.c更方便,而且不會有混淆的風險。