一.五種函數調用方法(不夠準確,全面,但初學者能夠先這樣理解)python
1.是自建於函數位於builtins模塊中的函數,可直接調用.具體那些函數?能夠經過dir(_builtins_)查看,共計152個('len(dir(_builtins_))').函數
2.是經過'import'模塊調用.如:inport Bood,調用Boob模塊中的函數(如toch時),使用的方式是Boob.toch(),Boob.toch.這種方式的缺點是須要頻繁的寫被調用的模塊.ui
3.是經過'from 模塊 imprt x1 x2 x3 ...'.如:from sys import argv 或者__name__.意思是直接將模塊sys中的argv或者__name__函數導入到擋牆模塊(文件)中,接下來能夠直接使用argv,而不須要這樣sys.argv使用.其實是在當前模塊中建立了新變量argv或者__name__,只是在賦值前兩個變量引用同一個值,一個隱含的賦值過程.若引用了屬性可變更的變量,如屬性是列表,需特別當心.缺點是變量及值容易弄混:如調用不少的話.須要在後面加不少X1,X2....spa
4.是經過'form 模塊 import *' 調用.如:form sys import *.這種方式能夠調用被導入模塊的全部變量(若不想被建立同名變量,如在sys裏,能夠用下劃線做爲開頭命名變量,象__doc__就不會被調用;還能夠在模塊中,如在sys裏,定義一個__all__變量,用字符串列出容許被from sys import *調用的名稱,__all__=[x1,x2,..])此方法雖然不被官方推薦,由於「斷定一個特殊的函數或屬性是從哪來的有些困難,而且會形成調試和重構都更困難」。但這種方法對初學者或是編制代碼少的文件來講,是最直接最粗暴也是最方便的方法。
調試
5.是經過"import 模塊 as"。如:import sys as A。給模塊sys起個別名叫A,幫助記憶。在當前所在模塊的module實例上sys名稱失效,只認A。此方法缺點是易發生命名空間衝突。orm
二.import語句的做用對象
import就是用來導入模塊的,它能夠出如今程序中的任何位置。但須要注意的是最好把導入模塊放在代碼的開頭,由於這和做用域有關係。這樣解釋器在執行語句時,遵循做用域原則。即:若是在頂層導入了模塊,它的做用域是全局的;若是在函數內部導入了模塊,它的做用域只是局部的,不能被其它函數使用;若是其它函數也須要調用這個模塊,還須要再次導入比較麻煩。作用域
import語句導入模塊時,最好按照這樣的順序:一、python標準庫模塊;二、python第三方模塊;三、自定義模塊字符串
當import某個模塊而使得指定的.py(如sys.py)文件被加載時,python解釋器會爲它建立一個module實例,並建立一個模塊名稱來引用它,如dir(sys),其實是查詢SYS名稱引用的module實例上有哪些屬性名稱能夠存取。想要知道當前已加載的module實例的名稱與實例有哪些,可經過sys.modules,這是個字典對象,鍵的部分是模塊名稱,值的部分是module實例。若調用dir()未指定任何module實例,則會查詢當前所在模塊的module實例上擁有的名稱。form