Példa vs statikus vs osztálymódszerek a Pythonban: A fontos különbségek

Példa vs statikus vs osztálymódszerek a Pythonban: A fontos különbségek

A Python -módszerek gyakran zavaróak lehetnek, ha belekezd az objektum -orientált programozásba (OOP). Ez az útmutató a Python három fő módszertípusát ismerteti.





A Python 3 módszertípusa

A Pythonban háromféle módszer létezik: példányos módszerek , statikus módszerek , és osztály módszerei .





A különbségek ismerete nem mindig szükséges az alapvető Python -szkriptek kódolásához, de ha belép az OOP -ba, a különbségek nagy változást hozhatnak.





Ha új vagy a Pythonban, vagy csak kísérletezni szeretnél anélkül, hogy telepítened kellene valamit, akkor mindenképpen látogasd meg ezeket online interaktív Python shell -ek .

Mielőtt elkezdenénk: A dekorációs minták megértése

Mielőtt megvizsgálná a különbségeket, fontos megérteni a tervezési mintát díszítő minta , vagy egyszerűen a dekorátor .



A dekorátorok összetettek, de nincs mitől félni. A díszítők egyszerűen funkciók. Írhatja őket saját maga, vagy használhatja a könyvtárakban vagy a Python szabványos könyvtárban találhatóakat.

Mint minden funkció, a dekorátorok is ellátnak egy feladatot. A különbség itt az, hogy a dekorátorok logikát alkalmaznak, vagy megváltoztatják más funkciók viselkedését. Kiváló módja a kód újrafelhasználásának, és segíthet a logika egyéni aggodalmakra való szétválasztásában.





A dekorációs minta a Python által preferált módja a statikus vagy osztálymódszerek meghatározásának. Így néz ki az egyik a Pythonban:

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

A dekorátoroknak közvetlenül a funkció- vagy osztálydeklaráció előtt kell szerepelniük. Kezdik a @ aláírja, és a szokásos módszerekkel ellentétben nem kell zárójelet tenni a végére, hacsak nem érveket ad át.





Lehetőség van több dekorátor kombinálására, saját írás megírására és az osztályokra való alkalmazására is, de ezekhez a példákhoz nem kell semmit tennie.

hogyan lehet csatlakoztatni a wii -t a hdtv -hez

Példánymódszerek a Pythonban

A példánymetódusok a leggyakoribb módszerek a Python osztályokban. Ezeket azért hívják, mert hozzáférhetnek a példány egyedi adataihoz. Ha két objektumot hoz létre egy autóosztályból, akkor mindegyiknek különböző tulajdonságai lehetnek. Különböző színűek, motorméretek, ülések stb.

A példányos módszereknek rendelkezniük kell maga paraméterként, de nem kell ezt minden alkalommal megadnia. Az Self egy másik speciális Python kifejezés. Bármely példányos metóduson belül használhatja az önmagát az osztályához tartozó adatokhoz és módszerekhez való hozzáféréshez. Ön nem fog tudni hozzáférni hozzájuk anélkül, hogy önmagán keresztülmenne.

Végül, mivel a példamódszerek a leggyakoribbak, nincs szükség dekorátorra. Bármely módszer, amelyet létrehoz, automatikusan példánymetódusként jön létre, hacsak a Pythonnak másképp nem mondja.

Íme egy példa:

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

Az név változó keresztül érhető el maga . Figyelje meg, hogy mikor példa_funkció hívják, nem kell megadnia önmagát --- Python ezt megteszi helyetted.

Statikus módszerek a Pythonban

A statikus módszerek olyan módszerek, amelyek valamilyen módon kapcsolódnak egy osztályhoz, de nem kell hozzáférniük az osztály-specifikus adatokhoz. Nem kell használni maga , és nem is kell példányt létrehoznia, egyszerűen hívhatja a módszert:

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

Az @statikus módszer dekorátor segítségével mondták meg a Pythonnak, hogy ez a módszer statikus módszer.

A statikus módszerek nagyszerűek a segédprogramok funkcióihoz, amelyek elkülönítve hajtanak végre egy feladatot. Nem kell (és nem is) hozzáférniük az osztályadatokhoz. Teljesen önállónak kell lenniük, és csak érvként átadott adatokkal dolgozhatnak. Használhat statikus módszert két szám összeadására, vagy kinyomtathat egy adott karakterláncot.

Osztálymódszerek Pythonban

Az osztálymódszerek a harmadik és egyben utolsó OOP módszertípus, amelyet ismerni kell. Az osztálymódszerek ismerik az osztályukat. Nem férhetnek hozzá bizonyos példányadatokhoz, de hívhatnak más statikus módszereket.

Az osztálymódszerekre nincs szükség maga érvként, de szükségük van egy úgynevezett paraméterre cls . Ez arra utal osztály , és mint én, a Python automatikusan átadja.

Az osztálymódszereket a @osztálymódszer dekorátor.

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

Az osztálymetódusok talán a legzavarosabb módszertípusok a három közül, de vannak felhasználásaik. Az osztálymódszerek manipulálhatják magát az osztályt, ami akkor hasznos, ha nagyobb, összetettebb projekteken dolgozik.

Mikor kell használni az egyes módszertípusokat

Nehéz és félelmetes döntésnek tűnhet a Python módszertípusai közötti választás, de egy kis gyakorlással hamarosan rá fog jönni.

zenét hallgatni barátaival online

Még ha csak szórakozásból is írsz apró szkripteket, a Python egy másik OOP -funkciójának megismerése nagyszerű tudás, és segíthet abban, hogy a kód könnyebb legyen a hibaelhárításban, és könnyebben használható legyen a jövőben.

Összefoglalva:

  1. Példányos módszerek: A leggyakoribb módszertípus. Képes hozzáférni az egyes példányokhoz egyedi adatokhoz és tulajdonságokhoz.
  2. Statikus módszerek: Semmi más nem érhető el az osztályban. Teljesen önálló kód.
  3. Osztálymódszerek: Hozzáférhet az osztály korlátozott módszereihez. Módosíthatja az osztály specifikus részleteit.

Ha ez az oktatóanyag kissé fejlett volt, vagy nem egészen az, amit kerestél, akkor miért nem nézed meg ezeket a tanfolyamokat, hogy a Python kezdőtől profi legyen? Ez az 5 webhely nagyszerű a Python kezdők számára is. Ha fizikai, valós világban szeretné használni a Python -ot, de unja a Raspberry Pi -t, mit szólna ehhez az Arduino vezérlése Python segítségével ?

Részvény Részvény Csipog Email A Windows PC tisztítása a parancssor használatával

Ha a Windows PC -n kevés a tárhely, törölje ki a szemetet ezekkel a gyors parancssori segédprogramokkal.

Olvassa tovább
Kapcsolódó témák
  • Programozás
  • Programozás
  • Piton
A szerzőről Joe Coburn(136 megjelent cikk)

Joe az Egyesült Királyságban, a Lincoln Egyetemen végzett informatikából. Professzionális szoftverfejlesztő, és amikor nem repül drónokkal és nem ír zenét, gyakran előfordul, hogy fényképeket készít vagy videókat készít.

Joe Coburn további alkotásai

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide