Python Magic metodes ir metodes, kas sākas un beidzas ar dubultām pasvītrām “__”. Tos nosaka Python iebūvētās klases, un tos parasti izmanto operatora pārslodzei.
Viņus arī sauc Dunder metodes, Dunder šeit nozīmē Double Under (pasvītrojums).
Python maģijas metodes
Iebūvētās klases nosaka daudzas maģiskas metodes, tu () funkcija var parādīt klases mantotās maģiskās metodes.
Piemērs:
Šis kods parāda maģiskās metodes, kuras mantojis starpt klasē.
Python3
# code> print>(>dir>(>int>))> |
>
>Izvade
['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '_...>
Vai arī varat mēģināt cmd/terminal, lai iegūtu Python maģisko funkciju sarakstu, atveriet cmd vai termināli, ierakstiet python3, lai pārietu uz Python konsoli, un ierakstiet:
>>> teikt(int)>>Izvade:
Python maģijas metodes
Tālāk ir sniegti Python burvju metožu un to lietojumu saraksti.
Inicializācija un būvniecība
- __jauns__ : Lai saņemtu izsaukumu objekta instancē.
- __karsts__ : Lai saņemtu izsaukumu, izmantojot __new__ metodi.
- __no__ : Tas ir iznīcinātājs.
Skaitliskās maģijas metodes
arraylist un linkedlist
- __stumbrs__ (pats): Ievieš uzvedību math.trunc()
- __griesti__ (pats): Ievieš math.ceil() uzvedību
- __stāvs__ (pats): Ievieš uzvedību math.floor()
- __raunds__ (sevis,n): Ievieš iebūvētās kārtas() uzvedību
- __apgriezt__(pats): Ievieš uzvedību inversijai, izmantojot operatoru ~.
- __abs__(pats): Ievieš iebūvēto abs() darbību
- __neg__(pats): Ievieš noliegšanas uzvedību
- __pos__(pats): Īsteno uzvedību viennozīmīgi pozitīvai
Aritmētiskie operatori
- __pievienot__ (pats, cits): Ievieš uzvedību math.trunc()
- __sub__(pats, cits): Ievieš math.ceil() uzvedību
- __Man ir__ (pats, cits): Ievieš uzvedību math.floor()
- __floordiv__ (pats, cits): Ievieš iebūvētās kārtas() uzvedību
- __div__(pats, cits): Ievieš uzvedību inversijai, izmantojot operatoru ~.
- __truediv__(pats, cits): Ievieš iebūvēto abs() darbību
- __mod__(pats, cits): Ievieš noliegšanas uzvedību
- __divmod__(pats, cits): Īsteno uzvedību viennozīmīgi pozitīvai
- __pow__: Ievieš eksponentu uzvedību, izmantojot operatoru **.
- __lshift__(pats, cits): Ievieš bitu nobīdi pa kreisi, izmantojot operatoru <<.
- __rshift__(pats, cits): Ievieš bitu nobīdi pa labi, izmantojot operatoru>>.
- __un__(pats, cits): Īsteno bitu veidā un izmantojot operatoru &.
- __vai__(pats, cits): Ievieš bitu veidā vai izmantojot | operators.
- __xor__(pats, cits): Ievieš bitu xor, izmantojot operatoru ^.
Stīgu maģijas metodes
- __str__ (pats): Definē uzvedību, kad str() tiek izsaukts jūsu klases instancē.
- __repr_ _(pats): T o saņemt izsaukumu, izmantojot iebūvēto repr() metodi, lai atgrieztu mašīnlasāmu tipa attēlojumu.
- __unicode__(pats): Šī metode, lai atgrieztu tipa unikoda virkni.
- __format__(self, formatstr): atgriezt jaunu stīgu stilu.
- __hash_ _(pats): Tam ir jāatgriež vesels skaitlis, un tā rezultāts tiek izmantots ātrai taustiņu salīdzināšanai vārdnīcās.
- __nonzero__(pats): Definē uzvedību, kad bool() tiek izsaukts jūsu klases instancē.
- __tu_ _(pats): Šī metode, lai atgrieztu klases atribūtu sarakstu.
- __lielums__( pats): Tas atgriež objekta izmēru.
Maģisko metožu salīdzināšana
- __eq__ (pats, cits): Definē vienlīdzības operatora uzvedību ==.
- __ne__(pats, cits): Definē uzvedību nevienlīdzības operatoram !=.
- __lt__ (pats, cits): Definē uzvedību operatoram mazāks par operatoru <.
- __gt__ (pats, cits): Definē uzvedību operatoram “lielāks par”>.
- __le__(pats, cits): Definē uzvedību operatoram mazāk nekā vai vienāds ar <=.
- __ge__ (pats, cits): Definē uzvedību operatoram lielāks par vai vienāds ar>=.
Dunder vai burvju metodes Python
Apskatīsim dažas Python maģijas metodes ar piemēriem:
1. __init__ metode
The __init__ metode inicializācijai tiek izsaukts bez izsaukuma, kad tiek izveidots klases gadījums, piemēram, konstruktori noteiktās citās programmēšanas valodās, piemēram, C++, Java, C#, PHP utt.
Šīs metodes ir iemesls, kāpēc mēs varam pievienot divas virknes, izmantojot operatoru “+”, bez skaidras rakstīšanas.
Python3
# declare our own string class> class> String:> > ># magic method to initiate object> >def> __init__(>self>, string):> >self>.string>=> string> > # Driver Code> if> __name__>=>=> '__main__'>:> > ># object creation> >string1>=> String(>'Hello'>)> > ># print object location> >print>(string1)> |
>Izvade
>
2. __repr__ metode
__repr__ Python metode definē, kā objekts tiek parādīts kā virkne.
Tālāk redzamais koda fragments izdrukā tikai virknes objekta atmiņas adresi. Pievienosim metodi __repr__, lai attēlotu mūsu objektu.
Python3
# declare our own string class> class> String:> > ># magic method to initiate object> >def> __init__(>self>, string):> >self>.string>=> string> > ># print our string object> >def> __repr__(>self>):> >return> 'Object: {}'>.>format>(>self>.string)> > # Driver Code> if> __name__>=>=> '__main__'>:> > ># object creation> >string1>=> String(>'Hello'>)> > ># print object location> >print>(string1)> |
>
>
arraylist java kārtotIzvade
Object: Hello>
Ja mēģinām tai pievienot virkni:
Python3
# declare our own string class> class> String:> > ># magic method to initiate object> >def> __init__(>self>, string):> >self>.string>=> string> > ># print our string object> >def> __repr__(>self>):> >return> 'Object: {}'>.>format>(>self>.string)> > # Driver Code> if> __name__>=>=> '__main__'>:> > ># object creation> >string1>=> String(>'Hello'>)> > ># concatenate String object and a string> >print>(string1>+>' world'>)> |
>
java satur apakšvirkni
>
Izvade:
TypeError : unsupported operand type(s) for +: 'String' and 'str'>
3. __pievienošanas__ metode
__pievienot__ metodi Python definē, kā klases objekti tiks summēti. To sauc arī par pārslogotu pievienošanas operatoru.
Tagad pievienojiet __add__ metodi virknes klasei:
Python
# declare our own string class> class> String:> > ># magic method to initiate object> >def> __init__(>self>, string):> >self>.string>=> string> > ># print our string object> >def> __repr__(>self>):> >return> 'Object: {}'>.>format>(>self>.string)> > >def> __add__(>self>, other):> >return> self>.string>+> other> > # Driver Code> if> __name__>=>=> '__main__'>:> > ># object creation> >string1>=> String(>'Hello'>)> > ># concatenate String object and a string> >print>(string1>+>' Geeks'>)> |
>
>Izvade
Hello Geeks>
Mēs esam apsprieduši dažas no Python burvju metodēm vai Dunder metodēm. Python maģiskās metodes var izmantot dažādām jūsu klases funkcijām.
Cerams, ka no šī raksta uzzināsit par Python burvju metodēm un izmantosit to savos projektos.
