Lister toutes les méthodes d'un module Python
-
Lister toutes les méthodes d’un module Python à l’aide de la méthode
dir()
-
Lister toutes les méthodes d’un module Python à l’aide du module
inspect()
Un module, un package ou une bibliothèque Python est un fichier ou un groupe de fichiers contenant des définitions de fonctions Python, de classes Python et de variables Python. En Python, nous pouvons importer un module et utiliser ses implémentations pour coller à deux concepts importants du monde de l’informatique ; Ne réinventez pas la roue
et Ne vous répétez pas
.
Ces packages ou modules peuvent être aussi petits que quelques lignes et aussi gros que des millions de lignes. À mesure que la taille augmente, il devient difficile d’analyser les modules ou de voir un aperçu clair du contenu du package. Mais les développeurs Python ont également résolu ce problème pour nous.
En Python, il existe de nombreuses façons de répertorier les méthodes et les classes d’un module Python. Dans cet article, nous allons parler de deux de ces pratiques à l’aide d’exemples pertinents. Notez que, par exemple, nous considérerons le module Python NumPy
. Si vous n’avez pas le package NumPy
sur votre système ou environnement virtuel, vous pouvez le télécharger en utilisant soit la commande pip install numpy
soit la commande pip3 install numpy
.
Lister toutes les méthodes d’un module Python à l’aide de la méthode dir()
La méthode dir()
est une méthode intégrée à Python. Il imprime tous les attributs et méthodes d’un objet ou d’un package Python. Vérifiez le code suivant pour le comprendre.
class A:
a = 10
b = 20
c = 200
def __init__(self, x):
self.x = x
def get_current_x(self):
return self.x
def set_x(self, x):
self.x = x
def __repr__(self):
return f"X: {x}"
print(dir(int))
print(dir(float))
print(dir(A))
Production :
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
['__abs__', '__add__', '__bool__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getformat__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__int__', '__le__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__round__', '__rpow__', '__rsub__', '__rtruediv__', '__set_format__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', 'as_integer_ratio', 'conjugate', 'fromhex', 'hex', 'imag', 'is_integer', 'real']
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'a', 'b', 'c', 'get_current_x', 'set_x']
Nous pouvons utiliser la méthode dir()
pour lister toutes les méthodes du module. Référez-vous au code suivant pour voir comment.
import numpy
print("NumPy Module")
print(dir(numpy))
Production :
Comme on peut le voir, la méthode dir()
a listé toutes les méthodes NumPy
.
Lister toutes les méthodes d’un module Python à l’aide du module inspect()
Le module inspect
est un module Python qui possède plusieurs fonctions utiles pour obtenir des informations utiles sur les modules, les classes, les objets de classe, les fonctions, les traces et les objets. Nous pouvons utiliser ce module pour notre simple objectif. Reportez-vous au code suivant pour en savoir plus sur son utilisation.
import numpy
from inspect import getmembers, isfunction
print("NumPy Module")
print(getmembers(numpy, isfunction))
Production :
La fonction getmembers()
, comme son nom l’indique, récupère tous les membres, tels que les méthodes, les variables, les classes, etc., présents à l’intérieur d’une classe ou d’un module. Comme nous n’avons besoin que de méthodes ou de fonctions, nous avons utilisé isfunction()
, une fonction Python qui filtre toutes les fonctions des membres. Il existe d’autres fonctions de ce type, comme ci-dessous.
ismodule()
: Renvoie True si l’objet est un module.isclass()
: Renvoie True si l’objet est une classe.istraceback()
: Renvoie True si l’objet est un traceback.isgenerator()
: Renvoie True si l’objet est un générateur.iscode()
: Renvoie True si l’objet est un code.isframe()
: Renvoie True si l’objet est un cadre.isabstract()
: Renvoie True si l’objet est une classe de base abstraite.iscoroutine()
: Renvoie True si l’objet est une coroutine.
Pour en savoir plus sur ce module, reportez-vous à la documentation officielle.