色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

什么是python的自省

瀏覽:4日期:2022-07-20 09:32:22

什么是自省?

在日常生活中,自省(introspection)是一種自我檢查行為。

在計算機編程中,自省是指這種能力:檢查某些事物以確定它是什么、它知道什么以及它能做什么。自省向程序員提供了極大的靈活性和控制力。

說的更簡單直白一點:自省就是面向對象的語言所寫的程序在運行時,能夠知道對象的類型。簡單一句就是,運行時能夠獲知對象的類型。

例如python, buby, object-C, c++都有自省的能力,這里面的c++的自省的能力最弱,只能夠知道是什么類型,而像python可以知道是什么類型,還有什么屬性。

最好的理解自省就是通過例子: Type introspection 這里是各種編程語言中自省(introspection)的例子(這個鏈接里的例子很重要,也許你很難通過敘述理解什么是introspection,但是通過這些例子,一下子你就可以理解了)

回到Python,Python中比較常見的自省(introspection)機制(函數用法)有: dir(),type(), hasattr(), isinstance(),通過這些函數,我們能夠在程序運行時得知對象的類型,判斷對象是否存在某個屬性,訪問對象的屬性。

dir()

dir() 函數可能是 Python 自省機制中最著名的部分了。它返回傳遞給它的任何對象的屬性名稱經過排序的列表。如果不指定對象,則 dir() 返回當前作用域中的名稱。讓我們將 dir() 函數應用于 keyword 模塊,并觀察它揭示了什么:

>>> import keyword>>> dir(keyword)[’__all__’, ’__builtins__’, ’__doc__’, ’__file__’, ’__name__’, ’__package__’, ’iskeyword’, ’kwlist’, ’main’]

type()

type() 函數有助于我們確定對象是字符串還是整數,或是其它類型的對象。它通過返回類型對象來做到這一點,可以將這個類型對象與 types 模塊中定義的類型相比較:

>>> type(42)<class ’int’>>>> type([])<class ’list’>

isinstance()

可以使用 isinstance() 函數測試對象,以確定它是否是某個特定類型或定制類的實例:

>>> isinstance('python', str)True

python自省中help用法擴展:

打開python的IDLE,就進入到了python解釋器中,python解釋器本身是被認為是一個主模塊,然后在解釋器提示符>>>下輸入一些我們想了解的信息,所以首先我們會先尋求幫助,所以輸入help,接著輸入help(),我們就進入了help utility,然后循著提示keywords,modules,以了解python的關鍵字以及python自帶的或者我們額外安裝和定義的模塊,如果要退出,輸入’q’,然后回車。

如果我們想了解某個對象(python里面所有對象都可以認為是對象),也可以求助也help(),不過要在括號里輸入對象的名稱,格式help(object),例如help(print),鑒于對象的自省內容太多,有的只粘貼出部分內容。

>>> helpType help() for interactive help, or help(object) for help about object.>>> help()Welcome to Python 3.6’s help utility!If this is your first time using Python, you should definitely check outthe tutorial on the Internet at https://docs.python.org/3.6/tutorial/.Enter the name of any module, keyword, or topic to get help on writingPython programs and using Python modules. To quit this help utility andreturn to the interpreter, just type 'quit'....help> keywordsHere is a list of the Python keywords. Enter any keyword to get more help.Falsedef if raiseNonedel import returnTrueelifin tryand elseis whileas except lambda withassert finally nonlocal yieldbreakfor not classfromor continue global passhelp> modulesPlease wait a moment while I gather a list of all available modules...PIL base64 idlelib runpy__future__ bdb idnarunscript__main__ binascii idna_ssl sched_astbinhex imaplib scrolledlist_asyncio bisect imghdr search_bisect browser imp ...Enter any module name to get more help. Or, type 'modules spam' to searchfor modules whose name or summary contain the string 'spam'.>>> help(’print’)Help on built-in function print in module builtins:print(...) print(value, ..., sep=’ ’, end=’n’, file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream.

到此這篇關于什么是python的自省的文章就介紹到這了,更多相關python自省是什么內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 免费又黄又爽的视频 | 搞黄网站免费观看 | 久久国产午夜精品理论片34页 | 99国产精品高清一区二区二区 | 久久亚洲国产午夜精品理论片 | 久久久久国产精品免费免费 | 久久精品国内一区二区三区 | 韩国一级特黄毛片大 | 狠狠se | 超91精品手机国产在线 | 在线中文字幕播放 | 老色歌uuu26 老师张开腿让我爽了一夜视频 | 免费一级毛片免费播放 | 成年女人毛片免费播放人 | 日本欧美一区二区三区不卡视频 | 欧美激情一区二区三区高清视频 | 中文字幕亚洲高清综合 | 国内高清久久久久久久久 | 欧美日产国产亚洲综合图区一 | 国产精品hd在线播放 | 一级做a爰片久久毛片潮喷 一级做a爰片久久毛片美女 | 99热在线观看 | 九九精品视频在线观看九九 | 日韩欧美视频一区二区三区 | 久久青草免费免费91线频观看 | 欧美日产国产亚洲综合图区一 | 天堂视频在线免费观看 | 美女张开腿给男生桶下面视频 | 成人亚洲国产 | 亚洲精品国精品久久99热 | 成人免费久久精品国产片久久影院 | 综合亚洲欧美日韩一区二区 | 精品96在线观看影院 | 综合久久久久久中文字幕 | 欧美一级毛片免费观看 | 成年人黄色免费网站 | a毛片在线 | 美女三级黄 | 久久免费视频观看 | 久久国产一区二区三区 | 和老外3p爽粗大免费视频 |