14.1 可調用的對象python
許多python對象都是可調用的,即能經過函數操做符「()」來調用對象。程序員
Python有四種可調用的對象:函數,方法,類,以及一些類的實例shell
14.1.4類的實例函數
python給類提供了名爲__call__的特別方法,該方法容許程序員建立可調用的對象(實例)。對象
14.2 代碼對象字符串
通常說來,代碼對象能夠做爲函數或者方法調用的一部分來執行,也能夠用exec語句或eval()來執行input
14.3可執行的對象聲明和內建函數string
python提供了大量的BIF來支持可調用/可執行對象,其中包含exec語句。it
callable(obj) 若是obj可調用,返回true,不然返回false。變量
comoile(string,file,type) 從type類型中建立代碼對象,fie是代碼存放的地方,一般設爲「」)
14.3.1 callable()
布爾函數,判斷一個對象是否能夠經過函數操做符(())來調用。
14.3.2 compile()
compile()函數容許程序員在運行時刻迅速生成代碼對象,而後能夠用exec語句或者內建函數eval()來執行
eval 可求值的表達式[和eval()一塊兒使用]
single 單一可執行語句[和exec一塊兒使用]
exec 可執行語句組[和exec一塊兒使用]
input() eval()和raw_input()的組合,等價於eval(raw_input)
14.4執行其餘pyhton程序
第一次導入模塊會執行模塊中最高級的代碼,這就是python導入的行爲只有屬於模塊最高級的代碼纔是全局變量、全局類、和全局函數聲明。
14.4.2 execfile()
如何經過文件對象,使用exec語句來讀取Python腳本的內容並執行
f=open(filename,'r')
exec f
f.close()
execfile(filename)
execfile(filename,glkobals=globals(),locals=local())
14.4.3 將模塊做爲腳本執行
經過shell或者DOS來執行
14.5執行其餘(非python)程序
os模塊函數
os.system():接收字符串的形式的系統命令並執行它,當執行命令的時候,python的運行是掛起的。當執行完成的時候,將會以system()的返回值的形式給出退出狀態,python的執行也會繼續。
os.popen():函數是文件對象和system()函數的結合。它工做方式和system()相同,但它能夠創建一個指向那個程序的單向鏈接,而後向訪問文件同樣訪問這個程序。
14.7結束執行
當程序運行完成,全部模塊最高級的語句執行完畢後退出,咱們便稱這是乾淨的執行,可能有不少的狀況,須要從python中提早退出。
sys.exit()當調用sys.exit()的時候,便會引起systemExit()異常。system exit是惟一不看做錯誤的異常。它僅僅表示要退出Python的願望。
14.10練習
14-1 可調用對象。 說出python 中的可調用對象。exec 語句和內建函數eval()有什麼不一樣?
函數、方法、類、實例。
exec語句執行的是代碼對象或字符串形式的代碼
eval語句執行的是表達式
14-2.input()和raw.input()。 內建函數raw_input()和input()有什麼不一樣?
input()返回用戶的輸入,並把輸入做爲Python的表達式進行求值。
raw_input()以字符串的形式返回用戶的輸入
14-3 執行環境。建立運行其餘python 腳本的python 腳本
excefile()