1. 程式人生 > >Python使用inspect檢視程式碼引數

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(...) 

這些應該夠學習用了。以後有什麼再補充。