O clasă este un model sau un prototip definit de utilizator din care sunt create obiecte. Clasele oferă un mijloc de a grupa datele și funcționalitățile. Crearea unei clase noi creează un nou tip de obiect, permițând crearea de noi instanțe de acest tip. Fiecare instanță de clasă poate avea atribute atașate pentru menținerea stării sale. Instanțele de clasă pot avea și metode (definite de clasa sa) pentru modificarea stării acesteia.
Exemplu:
Python3
# 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)> |
>
>
Ieșire:
COE COE Shivam Sachin COE>
Notă: Pentru mai multe informații, consultați Clase și obiecte Python .
Obținerea unei liste de atribute de clasă
Este important să cunoaștem atributele cu care lucrăm. Pentru date mici, este ușor să vă amintiți numele atributelor, dar atunci când lucrați cu date uriașe, este dificil să memorați toate atributele. Din fericire, avem câteva funcții în Python disponibile pentru această sarcină.
Folosind funcția încorporată dir().
Pentru a obține lista tuturor atributelor, metodelor împreună cu unele metode magice moștenite ale unei clase, folosim un încorporat numittu().
Exemplu:
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))> |
întreg java
>
>
Ieșire:
primul al doilea al treilea 2 Prin trecerea obiectului clasei ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '_,_gt_' '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__reduce_ex__', '__'_rep_, '_'_rep_, '_'_rep_, '_______ ', '__str__', '__subclasshook__', '__weakref__', 'attr', 'one', 'show', 'three', 'two'] Prin trecerea clasei în sine ['__class__', '__delattr__', '__dict__' , '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '_, '___', '_,___ __module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__reduce___', '__reduce_ex__', '__'hook', '_'hook', '_'how', , „trei”, „doi”]
Folosind metoda getmembers().
O altă modalitate de a găsi o listă de atribute este utilizarea modululuiinspecta. Acest modul oferă o metodă numităgetmembers()care returnează o listă de atribute și metode de clasă.
Exemplu:
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()> # 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)> |
>
>
Ieșire:
first second third 2 ('attr', 2) ('one', 'first') ('three', 'third') ('two', 'second')> Folosind metoda magică __dict__().
Pentru a găsi atribute putem folosi și metoda magică__dict__. Această metodă returnează numai atribute de instanță.
Exemplu:
Python3
coduri de culoare java
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())> |
>
>
Ieșire:
first second third 2 {'attr': 2} dict_keys(['attr']) dict_values([2])> Folosind funcția vars().
Pentru a găsi atribute putem folosi și funcția vars(). Această metodă returnează dicționarul atributelor de instanță ale obiectului dat.
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))> |
>
>
Ieșire:
first second third 2 {'attr': 2}>