什么是自省?
在日常生活中,自省(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 模塊,并觀察它揭示了什么:
>>>importkeyword>>>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中自省的意思是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注本站行業資訊頻道,感謝各位的閱讀!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
五個經濟特區指的是深圳、珠海、汕頭、廈門、海南。深圳、珠海、汕頭、廈門是中國最早實行對外開放政策的四個經濟特區,1988設立了海南經濟特區,所以我國共有五個經濟特區。五個經濟特區有哪幾個2010年5月,中央正式批準霍爾果斯、喀什設立經濟特區,在五個經濟特區的基礎上額外新增加了兩個,我國經濟特區變為7個。1979年7月,中央在深圳、珠海、汕頭、廈門試辦出口特區,1980年這四個出口特區改稱為經濟特區...
信用卡刷卡驗密功能是指信用持卡人在刷卡消費或者取現時,需要輸入密碼以進行驗證的過程。如果設置了信用卡刷卡驗密功能,那么只能在持卡人輸入正確的密碼的前提下才能完成支付交易或者取現。信用卡刷卡驗密功能是一種交易方式,與“簽名確認”的方式相對。目前國內銀行推出的信用卡大部分是銀聯組織發行的信用卡,國內的環境和用戶刷卡習慣決定了國內持卡人的刷卡支付方式,一般會設置信用卡刷卡驗密功能...
中國移動手機錢包業務指的是中國移動通信集團北京有限公司,北京銀聯股份有限公司推出的一種全新的個人移動金融服務,該服務是將客戶的手機號碼與北京地區發行的銀行卡進行綁定,通過使用手機短信到操作方式,隨時隨地的為北京地區的銀行卡提供更加方便的個性化金融服務和更加快捷的支付渠道,那么中國移動手機錢包有風險嗎?下面我們就來給大家詳細的說一下這個問題。1、首先中國移動手機錢包是由北京銀聯股份有限公司以及中國移...