Obtenir une liste de méthodes dans une classe Python
Itérer dans les méthodes d'une classe ou gérer ses objets différemment en fonction de ses méthodes nécessite de récupérer un liste de ces méthodes. Cet article propose deux approches pour y parvenir.
Utilisation d'inspect.getmembers()
Cette fonction prend une classe ou une instance comme premier argument et une fonction de prédicat comme premier argument. deuxième argument. La fonction de prédicat filtre la liste renvoyée en fonction d'un critère spécifique. Pour récupérer une liste de méthodes dans une classe, nous pouvons passer inspect.ismethod comme fonction de prédicat.
<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>
La variable méthodes contiendra une liste de tuples, chaque tuple contenant le nom de la méthode et l'objet de la méthode. .
Utilisation de dir()
La fonction dir() renvoie une liste de tous les attributs d'un objet, y compris les méthodes. Cependant, il inclut également des attributs non-méthode, qui peuvent nécessiter un filtrage supplémentaire.
<code class="python">methods = [m for m in dir(MyClass) if callable(getattr(MyClass, m))]</code>
Le filtre callable() vérifie si un attribut est appelable, indiquant une méthode. Gardez à l'esprit que cette approche peut ne pas être aussi fiable que l'utilisation de inspect.getmembers() car elle peut inclure des attributs non liés à la méthode.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!