3 8 Python物件的自省機制

2022-09-18 23:15:11 字數 1098 閱讀 9716

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)

>>> type()

hasattr()

物件擁有屬性,並且dir()函式會返回這些屬性的列表。但是,有時我們只想測試乙個或多個屬性是否存在。如果物件具有我們正在考慮的屬性,那麼通常希望只檢索該屬性。這個任務可以由 hasattr() 和 getattr() 函式來完成.

>>> hasattr(id, '__doc__')

true

isinstance() 

可以使用 isinstance() 函式測試物件,以確定它是否是某個特定型別或定製類的例項:

>>> isinstance("python", str)

true

Python自省機制

什麼是自省?在日常生活中,自省 introspection 是一種自我檢查行為。在計算機程式設計中,自省是指這種能力 檢查某些事物以確定它是什麼 它知道什麼以及它能做什麼。自省向程式設計師提供了極大的靈活性和控制力。最好的理解自省就是通過例子 type introspection 這裡是各種程式語言...

python的自省機制

1 自省 自省就是物件導向的語言所寫的程式在執行時,能夠知道物件的型別。簡單一句就是,執行時能夠獲知物件的型別。2 自省機制 自省機制通過函式實現,是乙個函式。例如python,buby,object c,c 都有自省的能力,這裡面的c 的自省的能力最弱,只能夠知道是什麼型別,而像python可以知...

Python的自省機制

什麼是自省?在日常生活中,自省 introspection 是一種自我檢查行為。在計算機程式設計中,自省是指這種能力 檢查某些事物以確定它是什麼 它知道什麼以及它能做什麼。自省向程式設計師提供了極大的靈活性和控制力。說的更簡單直白一點 自省就是物件導向的語言所寫的程式在執行時,能夠知道物件的型別。簡...