python有兩種導入模塊的方法。兩種都有用,你應該知道什么時候使用哪一種方法。一種方法,importmodule,導入后,如果想要用module中的屬性或方法,需要module.屬性(方法),但是它與第一種有著細微但重要的區別。
下面是frommoduleimport的基本語法:
fromUserDictimportUserDict
它與你所熟知的importmodule語法很相似,但是有一個重要的區別:UserDict被直接導入到局部名字空間去了,所以它可以直接使用,而不需要加上模塊名的限定。你可以導入獨立的項或使用frommoduleimport*來導入所有東西。
注意
Python中的frommoduleimport*像Perl中的usemodule;Python中的importmodule像Perlrequiremodule。中的
注意
Python中的frommoduleimport*像Java中的importmodule.*;Python中的importmodule像Java中的importmodule。
例.importmodulevs.frommoduleimport
>>>importtypes
>>>types.FunctionType1
>>>FunctionType2
Traceback(innermostlast):
File"",line1,in?
NameError:Thereisnovariablenamed'FunctionType'
>>>fromtypesimportFunctionType3
>>>FunctionType4
1types模塊不包含方法,只是表示每種Python對象類型的屬性。注意這個屬性必需用模塊名types進行限定。
2FunctionType本身沒有被定義在當前名字空間中;它只存在于types的上下文環境中。
3這個語法從types模塊中直接將FunctionType屬性導入到局部名字空間中。
4現在FunctionType可以直接使用,與types無關了。
什么時候你應該使用frommoduleimport?
如果你要經常訪問模塊的屬性和方法,且不想一遍又一遍地敲入模塊名,使用frommoduleimport。
如果你想要有選擇地導入某些屬性和方法,而不想要其它的,使用frommoduleimport。
如果模塊包含的屬性和方法與你的某個模塊同名,你必須使用importmodule來避免名字沖突。
除了這些情況,剩下的只是風格問題了,你會看到用兩種方式編寫的Python代碼。
小心
盡量少用frommoduleimport*,因為判定一個特殊的函數或屬性是從哪來的有些困難,并且會造成調試和重構都更困難。
以上內容為大家介紹了python之import和fromimport,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.dietsnews.net/