获取 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中文网其他相关文章!