[Python]標準庫–inspect

來源:互聯網
上載者:User

inspect 模組

昨天在infoq上看到豆瓣架構師演講有提到這個模組 今天找來文檔看看

Doc:這樣寫到

The inspect module provides several useful functions to help get information about live objects such as modules, classes, methods, functions, tracebacks, frame objects, and code objects.

這個模組是針對模組,類,方法,功能等對象提供些有用的方法。例如可以協助我們檢查類的內容,檢查方法的代碼,提取和格式化方法的參數等。

 

#coding:utf8 import inspectimport os class Test(object):    """Test Class """    def test(self):        self.fuc = lambda x:x class Testone(Test):    pass #檢查類型,模組,類,方法,產生器,代碼等都可以print inspect.ismodule(os) print inspect.isclass(Test) print inspect.getdoc(Test)print inspect.getsourcefile(Test) #檔案路徑print inspect.getsourcelines(Test) #代碼塊,每行一個元素,組成數組print inspect.getsource(Test) #代碼塊 帶縮排#列印全域變數中的模組對象myglobals = {}myglobals.update(globals())modules = [value           for key, value in myglobals.items()           if inspect.ismodule(value)]print modules  #查看類的可調用方法for name, value in inspect.getmembers(Test, callable):    print "    Callable:", namefor name, value in inspect.getmembers(Test(), callable):    print "   Instance Callable:", namedef hello():    print inspect.stack()[0][3]    print inspect.stack()hello()具體項目中的用法還不瞭解。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.