溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中自省的意思是什么

發(fā)布時(shí)間:2020-09-23 17:00:35 來源:億速云 閱讀:257 作者:Leah 欄目:編程語言

python中自省的意思是什么?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

什么是自?。?br/>

在日常生活中,自?。╥ntrospection)是一種自我檢查行為。

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

說的更簡單直白一點(diǎn):自省就是面向?qū)ο蟮恼Z言所寫的程序在運(yùn)行時(shí),能夠知道對象的類型。簡單一句就是,運(yùn)行時(shí)能夠獲知對象的類型。

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

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

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

dir()

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

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

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

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

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

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

看完上述內(nèi)容,你們掌握python中自省的意思是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI