logo

Comment obtenir une liste d’attributs de classe en Python ?

Une classe est un plan ou un prototype défini par l'utilisateur à partir duquel des objets sont créés. Les classes fournissent un moyen de regrouper les données et les fonctionnalités. La création d'une nouvelle classe crée un nouveau type d'objet, permettant de créer de nouvelles instances de ce type. Chaque instance de classe peut avoir des attributs qui lui sont attachés pour maintenir son état. Les instances de classe peuvent également avoir des méthodes (définies par leur classe) pour modifier leur état.

Exemple:

Python3




qu'est-ce qu'une pile Java



# Python program to demonstrate> # classes> class> Student:> > ># class variable> >stream>=> 'COE'> > ># Constructor> >def> __init__(>self>, name, roll_no):> > >self>.name>=> name> >self>.roll_no>=> roll_no> > # Driver's code> a>=> Student(>'Shivam'>,>3425>)> b>=> Student(>'Sachin'>,>3624>)> print>(a.stream)> print>(b.stream)> print>(a.name)> print>(b.name)> # Class variables can be accessed> # using class name also> print>(Student.stream)>

>

>

Sortir :

COE COE Shivam Sachin COE>

Note: Pour plus d'informations, reportez-vous à Classes et objets Python .

Obtenir une liste d'attributs de classe

Il est important de connaître les attributs avec lesquels nous travaillons. Pour les petites données, il est facile de mémoriser les noms des attributs, mais lorsque l’on travaille avec des données volumineuses, il est difficile de mémoriser tous les attributs. Heureusement, nous disposons de quelques fonctions en Python pour cette tâche.

Utilisation de la fonction dir() intégrée

Pour obtenir la liste de tous les attributs, méthodes ainsi que certaines méthodes magiques héritées d'une classe, nous utilisons un élément intégré appelétoi().

Exemple:

Python3




class> Number :> > ># Class Attributes> >one>=> 'first'> >two>=> 'second'> >three>=> 'third'> > >def> __init__(>self>, attr):> >self>.attr>=> attr> > >def> show(>self>):> >print>(>self>.one,>self>.two,> >self>.three,>self>.attr)> > n>=> Number(>2>)> n.show()> # Passing both the object> # and class as argument> # to the dir method> print>(>' By passing object of class'>)> print>(>dir>(n))> print>(>' By passing class itself '>)> print>(>dir>(Number))>

modèle de conception de constructeur
>

>

Sortir :

premier deuxième tiers 2 En passant l'objet de la classe ['__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__', 'attr', 'one', 'show', 'trois', 'two'] En passant la classe elle-même ['__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__', 'one', 'show' , 'trois', 'deux']

Utilisation de la méthode getmembers()

Une autre façon de trouver une liste d'attributs consiste à utiliser le moduleinspecter. Ce module fournit une méthode appeléeobtenir des membres()qui renvoie une liste d'attributs et de méthodes de classe.

Exemple:

Python3


la chaîne Java contient



import> inspect> class> Number :> > ># Class Attributes> >one>=> 'first'> >two>=> 'second'> >three>=> 'third'> > >def> __init__(>self>, attr):> >self>.attr>=> attr> > >def> show(>self>):> >print>(>self>.one,>self>.two,> >self>.three,>self>.attr)> > > # Driver's code> n>=> Number(>2>)> n.show()> # getmembers() returns all the> # members of an object> for> i>in> inspect.getmembers(n):> > ># to remove private and protected> ># functions> >if> not> i[>0>].startswith(>'_'>):> > ># To remove other methods that> ># doesnot start with a underscore> >if> not> inspect.ismethod(i[>1>]):> >print>(i)>

>

>

Sortir :

first second third 2 ('attr', 2) ('one', 'first') ('three', 'third') ('two', 'second')>

Utilisation de la méthode magique __dict__()

Pour trouver des attributs, nous pouvons également utiliser la méthode magique__dict__. Cette méthode renvoie uniquement les attributs d'instance.

Exemple:

Python3




class> Number :> > ># Class Attributes> >one>=> 'first'> >two>=> 'second'> >three>=> 'third'> > >def> __init__(>self>, attr):> >self>.attr>=> attr> > >def> show(>self>):> >print>(>self>.one,>self>.two,> >self>.three,>self>.attr)> > # Driver's code> n>=> Number(>2>)> n.show()> # using __dict__ to access attributes> # of the object n along with their values> print>(n.__dict__)> # to only access attributes> print>(n.__dict__.keys())> # to only access values> print>(n.__dict__.values())>

>

convertir un booléen en chaîne

>

Sortir:

first second third 2 {'attr': 2} dict_keys(['attr']) dict_values([2])>

Utilisation de la fonction vars()

Pour trouver des attributs, nous pouvons également utiliser la fonction vars(). Cette méthode renvoie le dictionnaire des attributs d'instance de l'objet donné.

Python3




import> inspect> class> Number :> > ># Class Attributes> >one>=> 'first'> >two>=> 'second'> >three>=> 'third'> > >def> __init__(>self>, attr):> >self>.attr>=> attr> > >def> show(>self>):> >print>(>self>.one,>self>.two,> >self>.three,>self>.attr)> > # Driver's code> n>=> Number(>2>)> n.show()> # using the vars function> print>(>vars>(n))>

Shreya Ghoshal, premier mari

>

>

Sortir:

first second third 2 {'attr': 2}>