Python使用inspect檢視程式碼引數
使用import inspect檢視python 類的引數和模組、函式程式碼
檔案就是最小的模組,資料夾是比較大的模組。
檔案裡面可以包含類,函式。
函式可以執行一個操作,多個函式組合在一起可以寫為一個模組,根據不同事物寫成一個類,這個類包含幾個行為寫成幾個類內的函式,也可以將這些作為一個檔案。
主要步驟是將檔案路徑設定到系統,再將檔案作為模組引入,再開始檢視檔案裡面的內容。
首先,寫了一個函式
def h(): print "hello" def hm(m,k): print m, k class w(object): def __init__(a, self): name =a def g(self): print name,"hello world!"
儲存在路徑C:\下,起個名字叫hello.py
開啟python shell 視窗,將這個路徑加入到系統路徑裡。命令如下
import sys
sys.path.append('C:/')
將檔案當做一個模組引入。
import hello
import inspect
檢視整個模組hello的原始碼: inspect.getsource(hello) 整個樣子不好看,需要print inspect.getsource(hello)
檢視模組hello裡面wo這個類的全部程式碼 print inspect.getsource(hello.w)
檢視模組內某個函式的程式碼: print inspect.getsource(hello.h)
檢視模組內某個類中函式的程式碼 print inspect.getsource(hello.w.g)
檢視模組中某個函式的引數的程式碼:inspect.getargspec(hello.hm)
檢視模組中類的引數程式碼 inspect.getargspec(hello.w.__init__) #這裡還是檢視類的初始定義函式。
檢視類中函式引數程式碼 inspect.getargspec(hello.w.g)
檢視模組路徑 inspect.getabsfile(hello)
檢視資料夾模組中某個類的路徑 inspect.getabsfile(。。。)#結果是顯示類的初始定義函式__init__.py的位置。
>>> inspect.getabsfile(django.db)
'c:\\python27\\lib\\site-packages\\django-1.7.1-py2.7.egg\\django\\db\\__init__.py'
綜上,最重要的是要記住,
檢視全部程式碼 inspect.getsource(模組.函式)或者(模組.類.函式)
檢視函式引數 inspect.getargspec(...) 檢視類的引數,則括號裡為(模組.類.__init__)
檢視函式的位置 inspect.getabsfile(...)
這些應該夠學習用了。以後有什麼再補充。