logo

Hur får man en lista över klassattribut i Python?

En klass är en användardefinierad ritning eller prototyp från vilken objekt skapas. Klasser ger ett sätt att kombinera data och funktionalitet tillsammans. Genom att skapa en ny klass skapas en ny typ av objekt, vilket gör att nya instanser av den typen kan skapas. Varje klassinstans kan ha attribut kopplade till sig för att bibehålla dess tillstånd. Klassinstanser kan också ha metoder (definierade av dess klass) för att ändra dess tillstånd.

Exempel:



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)>



>

>

.tif-fil

Utgång:

COE COE Shivam Sachin COE>

Notera: För mer information, se Python-klasser och -objekt .

Få en lista över klassattribut

Det är viktigt att känna till de egenskaper vi arbetar med. För små data är det lätt att komma ihåg namnen på attributen men när man arbetar med enorma data är det svårt att memorera alla attributen. Lyckligtvis har vi några funktioner i Python tillgängliga för denna uppgift.

Använder den inbyggda dir()-funktionen

För att få listan över alla attribut, metoder tillsammans med några ärvda magiska metoder i en klass, använder vi en inbyggd som heterdu().

Exempel:

Python3




typer av binära träd

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))>

>

>

json data exempel

Utgång:

första andra tredje 2 Genom att skicka objekt av klass ['__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', 'tre', 'två'] Genom att klara själva klassen ['__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' , 'tre', 'två']

Använder metoden getmembers().

Ett annat sätt att hitta en lista med attribut är att använda moduleninspektera. Denna modul tillhandahåller en metod som kallasgetmembers()som returnerar en lista med klassattribut och metoder.

Exempel:

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)>

>

>

Utgång:

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

Använder __dict__() Magic Method

För att hitta attribut kan vi också använda magisk metod__dikt__. Denna metod returnerar endast instansattribut.

Exempel:

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())>

ersätt från sträng i java

>

>

Produktion:

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

Använder funktionen vars().

För att hitta attribut kan vi också använda vars()-funktionen. Denna metod returnerar ordlistan över instansattribut för det givna objektet.

Python3




js onclick

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))>

>

>

Produktion:

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