Ilmentymä vs. staattinen vs. luokan menetelmät Pythonissa: tärkeät erot

Ilmentymä vs. staattinen vs. luokan menetelmät Pythonissa: tärkeät erot

Python -menetelmät voivat usein olla hämmentäviä, kun pääset objektipohjaiseen ohjelmointiin (OOP). Tämä opas kattaa Pythonin kolme päätyyppiä.





Pythonin 3 menetelmätyyppiä

Pythonissa on kolmenlaisia ​​menetelmiä: esimerkkimenetelmät , staattisia menetelmiä ja luokan menetelmiä .





Erojen tunteminen ei aina ole välttämätöntä Python -perusskriptien koodaamiseksi, mutta kun siirryt OOP: hen, erot voivat tehdä suuren muutoksen.





Jos olet uusi Pythonissa tai haluat vain kokeilla asentamatta mitään, muista käydä näissä interaktiiviset online -Python -kuoret .

Ennen kuin aloitamme: Sisustinkuvioiden ymmärtäminen

Ennen kuin tarkastellaan eroja, on tärkeää ymmärtää suunnittelumalli, joka tunnetaan nimellä koristeellinen kuvio tai yksinkertaisesti kutsutaan a sisustusarkkitehti .



Sisustajat kuulostavat monimutkaisilta, mutta ei ole mitään pelättävää. Sisustajat ovat yksinkertaisesti toimintoja. Voit kirjoittaa ne itse tai käyttää kirjastoissa tai Python -vakiokirjastossa olevia.

Kuten mikä tahansa toiminto, sisustajat suorittavat tehtävän. Ero tässä on se, että sisustajat soveltavat logiikkaa tai muuttavat muiden toimintojen käyttäytymistä. Ne ovat erinomainen tapa käyttää koodia uudelleen ja voivat auttaa erottamaan logiikan yksittäisiin huolenaiheisiin.





Sisustuskuvio on Pythonin suosituin tapa määritellä staattisia tai luokkamenetelmiä. Tältä näyttää Pythonissa:

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

Sisustajien on oltava välittömästi ennen funktion tai luokan ilmoitusta. Ne alkavat @ merkki, ja toisin kuin normaalit menetelmät, sinun ei tarvitse laittaa sulkeita loppuun, ellet välitä argumentteja.





On mahdollista yhdistää useita koristeita, kirjoittaa omia ja soveltaa niitä myös luokkiin, mutta sinun ei tarvitse tehdä mitään näistä esimerkeistä.

muut hakukoneet kuin youtube

Ilmentymän menetelmät Pythonissa

Instanssimenetelmät ovat Python -luokkien yleisimpiä menetelmiä. Näitä kutsutaan niin, koska ne voivat käyttää esiintymänsä ainutlaatuisia tietoja. Jos sinulla on kaksi autoluokasta luotua objektia, niillä voi olla eri ominaisuuksia. Niillä voi olla eri värejä, moottorikokoja, istuimia ja niin edelleen.

Ilmentymän menetelmillä on oltava itse parametrina, mutta sinun ei tarvitse antaa sitä joka kerta. Itse on toinen Python -erikoistermi. Minkä tahansa ilmentymismenetelmän sisällä voit käyttää omaa tietojasi tai menetelmiäsi, jotka voivat olla luokassasi. Et pääse niihin käsiksi ilman itseäsi.

Lopuksi, koska esimerkkimenetelmät ovat yleisimpiä, sisustusta ei tarvita. Kaikki luomasi menetelmät luodaan automaattisesti ilmentymmetodeiksi, ellet kerro Pythonille toisin.

Tässä on esimerkki:

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 nimi muuttujaan pääsee itse . Huomaa, että milloin esimerkki_toiminto kutsutaan, sinun ei tarvitse antaa itseäsi sisään --- Python tekee tämän puolestasi.

Staattiset menetelmät Pythonissa

Staattiset menetelmät ovat menetelmiä, jotka liittyvät luokkaan jollakin tavalla, mutta niiden ei tarvitse käyttää luokkakohtaisia ​​tietoja. Sinun ei tarvitse käyttää itse , eikä sinun tarvitse edes ilmentää ilmentymää, voit yksinkertaisesti kutsua menetelmääsi:

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 @statistinen menetelmä decoratorilla kerrottiin Pythonille, että tämä menetelmä on staattinen menetelmä.

Staattiset menetelmät sopivat hyvin apuohjelmille, jotka suorittavat tehtävän erikseen. Heidän ei tarvitse (eikä voi) käyttää luokkatietoja. Niiden tulisi olla täysin itsenäisiä ja käyttää vain argumentteina syötettyjä tietoja. Voit lisätä kaksi numeroa yhteen staattisella menetelmällä tai tulostaa annetun merkkijonon.

Luokkamenetelmät Pythonissa

Luokkamenetelmät ovat kolmas ja viimeinen tiedossa oleva OOP -menetelmätyyppi. Luokkamenetelmät tuntevat luokkansa. He eivät voi käyttää tiettyjä ilmentymän tietoja, mutta he voivat kutsua muita staattisia menetelmiä.

Luokkamenetelmiä ei tarvita itse argumenttina, mutta he tarvitsevat parametrin nimeltä cls . Tämä tarkoittaa luokka , ja kuten itse, Python antaa sen automaattisesti.

Luokkamenetelmät luodaan käyttämällä @luokkametodi sisustusarkkitehti.

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

Luokkamenetelmät ovat mahdollisesti hämmentävämpiä menetelmiä näistä kolmesta, mutta niillä on käyttötarkoituksensa. Luokkamenetelmät voivat manipuloida itse luokkaa, mikä on hyödyllistä, kun työskentelet suurempien ja monimutkaisempien projektien parissa.

Milloin kutakin menetelmätyyppiä käytetään

Se voi tuntua vaikealta ja pelottavalta päätökseltä valita Pythonissa käytettävien menetelmien välillä, mutta pian saat siitä kiinni harjoittelulla.

Windows 10 kaiuttimista ei kuulu ääntä

Vaikka kirjoitat vain pieniä komentosarjoja huvin vuoksi, Pythonin toisen OOP -ominaisuuden oppiminen on hyvä taito tietää, ja se voi helpottaa koodin vianmääritystä ja helpompaa käyttää uudelleen tulevaisuudessa.

Yhteenvetona:

  1. Ilmentymän menetelmät: Yleisin menetelmätyyppi. Pystyy käyttämään kullekin esiintymälle ainutlaatuisia tietoja ja ominaisuuksia.
  2. Staattiset menetelmät: Et voi käyttää mitään muuta luokassa. Täysin itsenäinen koodi.
  3. Luokan menetelmät: Voi käyttää rajoitettuja menetelmiä luokassa. Voi muokata luokkakohtaisia ​​tietoja.

Jos tämä opetusohjelma oli hieman edistynyt tai ei aivan mitä etsit, niin miksi et katsoisi näitä kursseja päästäksesi Python -aloittelijasta ammattilaiseksi? Nämä 5 verkkosivustoa sopivat myös Python -aloittelijoille. Jos haluat Pythonin fyysisen, tosielämän käytön, mutta olet kyllästynyt Raspberry Pi: hen, entä oppaamme hallita Arduinoa Pythonilla ?

Jaa Jaa Tweet Sähköposti Kuinka puhdistaa Windows -tietokone komentoriviltä

Jos Windows -tietokoneesi tallennustila on vähissä, puhdista roskat näillä nopeilla komentokehotteilla.

Lue seuraava
Liittyvät aiheet
  • Ohjelmointi
  • Ohjelmointi
  • Python
Kirjailijasta Joe Coburn(136 artikkelia julkaistu)

Joe on valmistunut tietojenkäsittelytieteestä Lincolnin yliopistosta Iso -Britanniasta. Hän on ammattimainen ohjelmistokehittäjä, ja kun hän ei lentä droneilla tai kirjoita musiikkia, hänet voidaan usein ottaa valokuvista tai videoista.

Lisää Joe Coburnilta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi