取得Python 類別中的方法清單
迭代類別的方法或根據其方法以不同方式處理其物件需要檢索這些方法的列表。本文提供了兩種方法來實現此目的。
使用inspect.getmembers()
此函數將類別或實例作為其第一個參數,並將謂詞函數作為其第二個論點。謂詞函數根據特定條件過濾傳回的列表。要檢索類別中的方法列表,我們可以傳遞inspect.ismethod作為謂詞函數。
<code class="python">from inspect import getmembers, ismethod class MyClass: def method1(self): pass def method2(self): pass # Python 2.x methods = getmembers(MyClass, ismethod) # Python 3.x methods = getmembers(MyClass, isfunction)</code>
methods 變數將包含一個元組列表,每個元組包含方法名稱和方法物件.
使用dir()
dir() 函數傳回物件的所有屬性的列表,包括方法。但是,它還包含非方法屬性,這可能需要額外的過濾。
<code class="python">methods = [m for m in dir(MyClass) if callable(getattr(MyClass, m))]</code>
callable() 過濾器檢查屬性是否可調用,指示方法。請記住,這種方法可能不如使用inspect.getmembers()可靠,因為它可能包含非方法屬性。
以上是如何取得Python類別中的方法清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!