Razred je uporabniško definiran načrt ali prototip, iz katerega so ustvarjeni predmeti. Razredi zagotavljajo sredstvo za združevanje podatkov in funkcionalnosti. Ustvarjanje novega razreda ustvari novo vrsto predmeta, ki omogoča ustvarjanje novih primerkov te vrste. Vsakemu primerku razreda so lahko pripeti atributi za ohranjanje njegovega stanja. Primerki razreda imajo lahko tudi metode (ki jih definira razred) za spreminjanje svojega stanja.
mylivecricket
primer:
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)> |
>
>
Izhod:
COE COE Shivam Sachin COE>
Opomba: Za več informacij glejte Razredi in objekti Python .
Pridobivanje seznama atributov razreda
Pomembno je poznati lastnosti, s katerimi delamo. Pri majhnih podatkih si je enostavno zapomniti imena atributov, pri delu z ogromnimi podatki pa si je težko zapomniti vse atribute. Na srečo imamo za to nalogo na voljo nekaj funkcij v Pythonu.
Uporaba vgrajene funkcije dir().
Da bi dobili seznam vseh atributov, metod skupaj z nekaterimi podedovanimi čarobnimi metodami razreda, uporabimo vgrajeno imenovanoti().
primer:
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))> |
>
>
Izhod:
java, kako preglasiti
prvi drugi tretji 2 S posredovanjem objekta razreda ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__seduce__', '__seof__', '__seof__', '__repr__', '__seof__', '__Sefr__', '__Sefr__' ', '__str__', '__subclasshook__', '__weakref__', 'attr', 'one', 'show', 'three', 'two'] S posredovanjem samega razreda ['__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' , 'tri', 'dva']
Uporaba metode getmembers().
Drugi način iskanja seznama atributov je uporaba modulapregledati. Ta modul ponuja metodo, imenovanogetmembers()ki vrne seznam atributov in metod razreda.
primer:
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)> |
>
>
Izhod:
first second third 2 ('attr', 2) ('one', 'first') ('three', 'third') ('two', 'second')> Uporaba čarobne metode __dict__().
Za iskanje atributov lahko uporabimo tudi magično metodo__dict__. Ta metoda vrne samo atribute primerka.
primer:
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())> |
>
>
Izhod:
first second third 2 {'attr': 2} dict_keys(['attr']) dict_values([2])> Uporaba funkcije vars().
Za iskanje atributov lahko uporabimo tudi funkcijo vars(). Ta metoda vrne slovar atributov primerka danega predmeta.
Python3
poskusi ujeti javo
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))> |
>
>
Izhod:
first second third 2 {'attr': 2}>