„Python“ egzempliorius vs statinis ir klasės metodai: svarbūs skirtumai

„Python“ egzempliorius vs statinis ir klasės metodai: svarbūs skirtumai

„Python“ metodai dažnai gali būti painūs, kai pradedate programuoti į objektą (OOP). Šis vadovas apima tris pagrindinius „Python“ metodų tipus.





3 „Python“ metodų tipai

„Python“ yra trijų tipų metodai: egzempliorių metodai , statiniai metodai , ir klasės metodai .





Norint žinoti pagrindinius „Python“ scenarijus, ne visada reikia žinoti skirtumus, tačiau kai tik pereisite prie OOP, skirtumai gali labai pakeisti.





Jei esate naujas „Python“ naudotojas arba tiesiog norite eksperimentuoti nieko neįdiegę, būtinai apsilankykite šiuose interaktyvūs „Python“ apvalkalai internete .

Prieš pradedant: Dekoratoriaus modelių supratimas

Prieš pažvelgdami į skirtumus, svarbu suprasti dizaino modelį, žinomą kaip dekoratoriaus raštas , arba tiesiog vadinamas a dekoratorius .



Dekoratoriai skamba sudėtingai, tačiau nėra ko bijoti. Dekoratoriai yra tik funkcijos. Galite juos parašyti patys arba naudoti tas, kurios įtrauktos į bibliotekas, arba standartinę „Python“ biblioteką.

Kaip ir bet kuri funkcija, dekoratoriai atlieka užduotį. Skirtumas tas, kad dekoratoriai taiko logiką arba keičia kitų funkcijų elgesį. Jie yra puikus būdas pakartotinai naudoti kodą ir gali padėti atskirti logiką į atskirus rūpesčius.





Dekoratoriaus modelis yra „Python“ pageidaujamas būdas apibrėžti statinius ar klasės metodus. Štai kaip atrodo „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()

Dekoratoriai turi būti prieš pat funkcijos ar klasės deklaraciją. Jie prasideda nuo @ ženklas, ir skirtingai nei įprasti metodai, jums nereikia įdėti skliaustelių į pabaigą, nebent pateikiate argumentus.





Galima sujungti kelis dekoratorius, parašyti savo ir pritaikyti juos ir pamokoms, tačiau šiems pavyzdžiams to daryti nereikės.

kaip sužinoti, ar paspaudžiamas mobilusis telefonas

Egzempliorių metodai „Python“

Egzempliorių metodai yra labiausiai paplitęs „Python“ klasių metodų tipas. Jie taip vadinami, nes jie gali pasiekti unikalius savo egzemplioriaus duomenis. Jei turite du objektus, sukurtus iš automobilių klasės, jie gali turėti skirtingas savybes. Jie gali turėti skirtingas spalvas, variklio dydžius, sėdynes ir pan.

Pavyzdiniai metodai turi turėti savarankiškai kaip parametras, tačiau jums nereikia to įvesti kiekvieną kartą. Aš - dar vienas ypatingas „Python“ terminas. Naudodami bet kurį egzemplioriaus metodą, galite naudoti „self“, kad pasiektumėte visus duomenis ar metodus, kurie gali būti jūsų klasėje. Negalėsite prie jų prieiti, neišeidami iš savęs.

Galiausiai, kadangi egzempliorių metodai yra labiausiai paplitę, dekoratoriaus nereikia. Bet koks jūsų sukurtas metodas bus automatiškai sukurtas kaip egzemplioriaus metodas, nebent „Python“ nurodysite kitaip.

Štai pavyzdys:

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 vardas kintamasis pasiekiamas per savarankiškai . Atkreipkite dėmesį, kai pavyzdys_funkcija vadinamas, jums nereikia įvesti savęs --- „Python“ tai daro už jus.

Statiniai Python metodai

Statiniai metodai yra metodai, kurie tam tikru būdu yra susiję su klase, tačiau jiems nereikia prieiti prie konkrečios klasės duomenų. Jūs neturite naudoti savarankiškai ir jums net nereikia momentinio egzemplioriaus, galite tiesiog paskambinti savo metodu:

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 @statistinis metodas dekoratorius buvo naudojamas pasakyti „Python“, kad šis metodas yra statinis metodas.

Statiniai metodai puikiai tinka naudingumo funkcijoms, kurios atlieka užduotį atskirai. Jiems nereikia (ir negali) pasiekti klasės duomenų. Jie turėtų būti visiškai savarankiški ir veikti tik su argumentais perduotais duomenimis. Galite naudoti statinį metodą, kad sudėtumėte du skaičius kartu arba atspausdintumėte nurodytą eilutę.

Klasės metodai „Python“

Klasės metodai yra trečias ir paskutinis OOP metodo tipas, kurį reikia žinoti. Klasės metodai žino apie savo klasę. Jie negali pasiekti konkrečių egzempliorių duomenų, tačiau gali skambinti kitais statiniais metodais.

Klasės metodų nereikia savarankiškai kaip argumentas, tačiau jiems reikia parametro, vadinamo cls . Tai reiškia klasė ir, kaip ir aš, automatiškai perduodamas „Python“.

Klasės metodai sukurti naudojant @classmethod dekoratorius.

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

Klasės metodai galbūt yra painiausi metodų tipai iš trijų, tačiau jie turi savo paskirtį. Klasės metodai gali manipuliuoti pačia klase, o tai naudinga, kai dirbate prie didesnių, sudėtingesnių projektų.

Kada naudoti kiekvieną metodo tipą

Tai gali atrodyti kaip sunkus ir bauginantis sprendimas, pasirenkant vieną iš „Python“ metodų tipų, tačiau netrukus įgysite šiek tiek praktikos.

Kur galiu ką nors atsispausdinti nemokamai

Net jei rašote tik mažus scenarijus savo linksmybėms, išmokti kitą „Python“ OOP funkciją yra puikus įgūdis žinoti ir gali padėti palengvinti jūsų kodo trikčių šalinimą ir lengviau jį naudoti ateityje.

Apibendrinant:

  1. Pavyzdiniai metodai: Labiausiai paplitęs metodo tipas. Galimybė pasiekti duomenis ir ypatybes, unikalias kiekvienam egzemplioriui.
  2. Statiniai metodai: Negalima pasiekti nieko kito klasėje. Visiškai savarankiškas kodas.
  3. Klasės metodai: Gali pasiekti ribotus metodus klasėje. Gali keisti konkrečios klasės detales.

Jei ši pamoka buvo šiek tiek pažengusi arba ne visai tai, ko ieškojote, tai kodėl gi nepažvelgus į šiuos kursus, norintiems pereiti nuo „Python“ pradedantiesiems į profesionalus? Šios 5 svetainės taip pat puikiai tinka „Python“ pradedantiesiems. Jei norite fizinio, realaus pasaulio „Python“ naudojimo, bet jums nuobodu „Raspberry Pi“, kaip apie mūsų vadovą valdant „Arduino“ su „Python“ ?

Dalintis Dalintis „Tweet“ Paštu Kaip išvalyti „Windows“ kompiuterį naudojant komandinę eilutę

Jei jūsų „Windows“ kompiuteryje trūksta saugyklos vietos, išvalykite šiukšles naudodami šias greitas komandų eilutės priemones.

Skaityti toliau
Susijusios temos
  • Programavimas
  • Programavimas
  • Python
Apie autorių Joe Coburn(Paskelbti 136 straipsniai)

Joe yra baigęs informatikos studijas Linkolno universitete, JK. Jis yra profesionalus programinės įrangos kūrėjas, o kai jis neskraido dronais ir nerašo muzikos, jį dažnai galima rasti fotografuojant ar kuriant vaizdo įrašus.

Daugiau iš Joe Coburn

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia