Luokka on käyttäjän määrittelemä suunnitelma tai prototyyppi, josta objektit luodaan. Luokat tarjoavat keinon niputtaa dataa ja toimintoja yhteen. Uuden luokan luominen luo uudentyyppisen objektin, mikä mahdollistaa sen tyypin uusien esiintymien tekemisen. Jokaiseen luokkainstanssiin voi olla liitetty attribuutteja tilan ylläpitämiseksi. Luokkailmentymillä voi myös olla menetelmiä (luokassa määrittämiä) tilan muokkaamiseen.
Esimerkki:
Python 3
# 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)> |
>
>
Lähtö:
COE COE Shivam Sachin COE>
Huomautus: Lisätietoja on kohdassa Python-luokat ja objektit .
Luokan ominaisuuksien luettelon hankkiminen
On tärkeää tietää ominaisuudet, joiden kanssa työskentelemme. Pienellä tiedolla attribuuttien nimet on helppo muistaa, mutta suuria tietoja käytettäessä on vaikea muistaa kaikkia määritteitä. Onneksi meillä on Pythonissa joitain toimintoja saatavilla tähän tehtävään.
Sisäänrakennetun dir()-funktion käyttö
Saadaksemme luettelon kaikista luokan attribuuteista, menetelmistä ja joistakin perityistä taikamenetelmistä käytämme sisäänrakennettua ns.sinä().
Esimerkki:
Python 3
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))> |
>
>
Lähtö:
ensimmäinen toinen kolmas 2 ohittamalla objektin luokan ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__'__,___'t,' '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', ____'reduce ', '__sizeof__ ', '__str__', '__subclasshook__', '__weakref__, 'attr', 'one', 'show', 'kolme', 'kaksi'] Läpäisemällä itse luokan ['__class__', '__delattr__', '__dic , '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', __'__, __'_, __'_ ,' __module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', ___'_, '__'_'s 'show' , 'kolme', 'kaksi']
Getmembers()-menetelmän käyttäminen
Toinen tapa löytää attribuuttiluettelo on käyttää moduuliatarkastaa. Tämä moduuli tarjoaa menetelmän nimeltähanki jäseniä ()joka palauttaa luettelon luokan attribuuteista ja menetelmistä.
Esimerkki:
Python 3
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)> |
>
>
Lähtö:
fmovies intia
first second third 2 ('attr', 2) ('one', 'first') ('three', 'third') ('two', 'second')> Käyttämällä __dict__() Magic Method -menetelmää
Attribuuttien löytämiseksi voimme myös käyttää taikamenetelmää__sanella__. Tämä menetelmä palauttaa vain esiintymän attribuutit.
Esimerkki:
Python 3
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())> |
>
>
Lähtö:
first second third 2 {'attr': 2} dict_keys(['attr']) dict_values([2])> Vars()-funktion käyttö
Attribuuttien löytämiseksi voimme myös käyttää vars()-funktiota. Tämä menetelmä palauttaa annetun objektin ilmentymien attribuuttien sanakirjan.
Python 3
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))> |
>
>
Lähtö:
first second third 2 {'attr': 2}>