Institūcijas un statiskās un klases metodes Python: svarīgās atšķirības

Institūcijas un statiskās un klases metodes Python: svarīgās atšķirības

Python metodes bieži vien var būt mulsinošas, kad esat nokļuvis objektorientētā programmēšanā (OOP). Šī rokasgrāmata aptver trīs galvenos Python metožu veidus.





Trīs metožu veidi Python

Python ir trīs veidu metodes: instanču metodes , statiskās metodes , un klases metodes .





Python pamata skriptu kodēšanai ne vienmēr ir jāzina atšķirības, taču, tiklīdz esat pārgājis uz OOP, atšķirības var radīt lielas izmaiņas.





Ja esat jauns Python lietotājs vai vienkārši vēlaties eksperimentēt, neko neinstalējot, noteikti apmeklējiet šos tiešsaistes interaktīvie Python apvalki .

Pirms sākam: Izpratne par dekoratora modeļiem

Pirms aplūkot atšķirības, ir svarīgi saprast dizaina modeli, kas pazīstams kā dekoratora raksts , vai vienkārši sauc par a dekorators .



Dekoratori izklausās sarežģīti, bet nav ko baidīties. Dekoratori ir vienkārši funkcijas. Jūs varat tos rakstīt pats vai izmantot bibliotēkās vai Python standarta bibliotēkā iekļautos.

Tāpat kā jebkura funkcija, arī dekoratori veic kādu uzdevumu. Atšķirība ir tāda, ka dekoratori izmanto loģiku vai maina citu funkciju uzvedību. Tie ir lielisks veids, kā atkārtoti izmantot kodu, un var palīdzēt loģiku nodalīt atsevišķās problēmās.





Dekoratora modelis ir Python vēlamais statisko vai klases metožu noteikšanas veids. Lūk, kā izskatās Python:

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@staticmethod
def example_function():
''' This method is decorated! '''
print('I'm a decorated function!')

de = DecoratorExample()
de.example_function()

Dekorētājiem jābūt tieši pirms funkcijas vai klases deklarācijas. Viņi sākas ar @ zīme, un atšķirībā no parastajām metodēm, jums nav jāievieto iekavas beigās, ja vien jūs nenododat argumentus.





Ir iespējams apvienot vairākus dekoratorus, uzrakstīt savus un piemērot tos arī nodarbībām, taču šiem piemēriem jums tas nebūs jādara.

kā redzēt, kas jūs abonējis vietnē YouTube

Instances metodes Python

Instances metodes ir visizplatītākais metožu veids Python klasēs. Tos sauc tā, jo tie var piekļūt unikāliem savas instances datiem. Ja jums ir divi objekti, kas izveidoti no automašīnu klases, tad katram no tiem var būt dažādas īpašības. Tiem var būt dažādas krāsas, dzinēja izmēri, sēdekļi utt.

Instances metodēm jābūt sevi kā parametrs, taču jums tas nav jāievada katru reizi. Es esmu vēl viens īpašs Python termins. Jebkurā gadījuma metodē varat izmantot pašu, lai piekļūtu visiem jūsu klasē esošajiem datiem vai metodēm. Jūs nevarēsit tiem piekļūt, neizmantojot sevi.

Visbeidzot, tā kā instanču metodes ir visizplatītākās, nav nepieciešams dekorētājs. Jebkura jūsu izveidotā metode tiks automātiski izveidota kā instances metode, ja vien Python nepaziņosit citādi.

Šeit ir piemērs:

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
self.name = 'Decorator_Example'
def example_function(self):
''' This method is an instance method! '''
print('I'm an instance method!')
print('My name is ' + self.name)

de = DecoratorExample()
de.example_function()

The vārds mainīgajam piekļūst caur sevi . Ievērojiet, kad piemērs_funkcija tiek saukts, jums nav jāiesniedz sevi --- Python to dara jūsu vietā.

Statiskās metodes Python

Statiskās metodes ir metodes, kas kaut kādā veidā ir saistītas ar klasi, bet tām nav jāpiekļūst nekādiem klases datiem. Jums nav jāizmanto sevi , un jums pat nav jāinstalē instance, varat vienkārši izsaukt savu metodi:

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@staticmethod
def example_function():
''' This method is a static method! '''
print('I'm a static method!')

de = DecoratorExample.example_function()

The @statiskā metode dekorētājs tika izmantots, lai pateiktu Python, ka šī metode ir statiska metode.

Statiskās metodes ir lieliskas lietderības funkcijām, kuras veic uzdevumu atsevišķi. Viņiem nav (un nevar) piekļūt klases datiem. Tiem vajadzētu būt pilnīgi patstāvīgiem un strādāt tikai ar datiem, kas nodoti kā argumenti. Varat izmantot statisku metodi, lai kopā pievienotu divus ciparus, vai izdrukāt norādīto virkni.

Klases metodes Python

Klases metodes ir trešais un pēdējais OOP metodes veids, kas jāzina. Klases metodes zina par savu klasi. Viņi nevar piekļūt konkrētiem instanču datiem, bet var izsaukt citas statiskas metodes.

Klases metodes nav vajadzīgas sevi kā argumentu, taču tiem ir vajadzīgs parametrs ar nosaukumu cls . Tas nozīmē klase , un, tāpat kā es, to automātiski nodod Python.

Klases metodes tiek veidotas, izmantojot @klases metode dekorators.

class DecoratorExample:
''' Example Class '''
def __init__(self):
''' Example Setup '''
print('Hello, World!')
@classmethod
def example_function(cls):
''' This method is a class method! '''
print('I'm a class method!')
cls.some_other_function()
@staticmethod
def some_other_function():
print('Hello!')

de = DecoratorExample()
de.example_function()

Klases metodes, iespējams, ir mulsinošākie metožu veidi no trim, taču tām ir savs pielietojums. Klases metodes var manipulēt ar pašu klasi, kas ir noderīgi, strādājot pie lielākiem, sarežģītākiem projektiem.

Kad izmantot katru metodes veidu

Tas var šķist grūts un biedējošs lēmums, izvēloties starp Python metožu veidiem, taču drīz jūs to uzzināsit, nedaudz praktizējot.

kā atbrīvoties no sociālajiem medijiem

Pat ja jūs rakstāt tikai mazus skriptus izklaidei, citas Python OOP funkcijas apgūšana ir lieliska prasme zināt, un tā var palīdzēt atvieglot jūsu koda problēmu novēršanu un vieglāk to izmantot nākotnē.

Kopsavilkumā:

  1. Instances metodes: Visizplatītākais metodes veids. Spēj piekļūt katram gadījumam unikāliem datiem un rekvizītiem.
  2. Statiskās metodes: Nevar piekļūt neko citu klasē. Pilnīgi patstāvīgs kods.
  3. Klases metodes: Var piekļūt ierobežotām metodēm klasē. Var mainīt klases specifiku.

Ja šī apmācība bija nedaudz uzlabota vai nebija gluži tā, ko jūs meklējāt, tad kāpēc ne apskatīt šos kursus, lai no Python iesācēja kļūtu par profesionālu? Šīs 5 vietnes ir lieliski piemērotas arī Python iesācējiem. Ja vēlaties izmantot Python fiziskā, reālajā pasaulē, bet jums ir garlaicīgi ar Raspberry Pi, kā būtu ar mūsu ceļvedi kontrolēt Arduino ar Python ?

Kopīgot Kopīgot Čivināt E -pasts Kā tīrīt Windows datoru, izmantojot komandu uzvedni

Ja jūsu Windows datorā ir maz vietas krātuvē, iztīriet nevēlamos atkritumus, izmantojot šīs ātrās komandrindas utilītas.

Lasīt Tālāk
Saistītās tēmas
  • Programmēšana
  • Programmēšana
  • Python
Par autoru Džo Koburns(Publicēti 136 raksti)

Džo ir absolvējis datorzinātnes Linkolnas universitātē, Lielbritānijā. Viņš ir profesionāls programmatūras izstrādātājs, un, kad viņš nelido ar droniem un neraksta mūziku, viņu bieži var atrast, fotografējot vai veidojot video.

Vairāk no Joe Coburn

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu