Een klasse is een door de gebruiker gedefinieerde blauwdruk of prototype waaruit objecten worden gemaakt. Klassen bieden een manier om data en functionaliteit te bundelen. Door een nieuwe klasse te maken, wordt een nieuw type object gemaakt, waardoor nieuwe exemplaren van dat type kunnen worden gemaakt. Aan elke klasse-instantie kunnen attributen zijn gekoppeld om de status ervan te behouden. Klasse-instanties kunnen ook methoden hebben (gedefinieerd door de klasse) om de status ervan te wijzigen.
Voorbeeld:
Python3
Python slaat json op in een bestand
# 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)> |
>
>
Uitgang:
COE COE Shivam Sachin COE>
Opmerking: Voor meer informatie, zie Python-klassen en objecten .
Een lijst met klassekenmerken verkrijgen
Het is belangrijk om te weten met welke attributen we werken. Voor kleine gegevens is het gemakkelijk om de namen van de attributen te onthouden, maar als u met grote gegevens werkt, is het moeilijk om alle attributen te onthouden. Gelukkig hebben we voor deze taak enkele functies in Python beschikbaar.
Met behulp van de ingebouwde dir()-functie
Om de lijst met alle attributen, methoden en enkele overgeërfde magische methoden van een klasse te krijgen, gebruiken we een ingebouwde genaamdJij().
Voorbeeld:
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))> |
>
df loc
>
Uitgang:
eerste tweede derde 2 Door object van klasse ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', door te geven '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__ ', '__str__', '__subclasshook__', '__weakref__', 'attr', 'one', 'show', 'three', 'two'] Door de klasse zelf te passeren ['__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' , 'drie twee']
Met behulp van de getmember()-methode
Een andere manier om een lijst met attributen te vinden is door de module te gebruikeninspecteren. Deze module biedt een methode genaamdleden ophalen()dat een lijst met klassekenmerken en methoden retourneert.
Voorbeeld:
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)> |
>
testen en soorten testen
>
Uitgang:
first second third 2 ('attr', 2) ('one', 'first') ('three', 'third') ('two', 'second')> Met behulp van __dict__() Magic-methode
Om attributen te vinden kunnen we ook de magische methode gebruiken__dict__. Deze methode retourneert alleen instantiekenmerken.
Voorbeeld:
Python3
vervang de tekenreeks in 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())> |
>
>
Uitgang:
first second third 2 {'attr': 2} dict_keys(['attr']) dict_values([2])> De functie vars() gebruiken
Om attributen te vinden kunnen we ook de functie vars() gebruiken. Deze methode retourneert het woordenboek met instantieattributen van het gegeven object.
Python3
java csv lezen
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))> |
>
>
Uitgang:
first second third 2 {'attr': 2}>