A Python programozás számos lehetőséget kínál, amelyek túlmutatnak az egyszerű szkripteken. Az objektumorientált programozás középpontjában a class kulcsszóval végzett munka áll. Ezek adják az alapját az objektumoknak, és lehetővé teszik, hogy komplex adatstruktúrákat hozz létre és kezelj. Ebben az útmutatóban megtanulod, hogyan definiálhatsz saját osztályokat Pythonban, hogy hatékonyan kihasználhasd azok tulajdonságait és módszereit.
Legfontosabb megállapítások
- Az osztályok a kulcs az objektumorientált programozásban Pythonban.
- Az inicializáló (konstruktor) lehetővé teszi, hogy az osztály létrehozásakor specifikus tulajdonságokat definiálj.
- Az osztályokban a módszerek lehetővé teszik, hogy olyan funkciókat kapszulázz, amelyek egy objektum tulajdonságain dolgoznak.
- A tulajdonságokhoz a pontoperátor segítségével férhetsz hozzá.
Lépésről lépésre útmutató
Kezdjük a class felépítésének alapjaival Pythonban. Először a class kulcsszó segítségével definiálj egy új osztályt. Ezt a következőképpen teheted meg a Python kódodban:

Itt egy üres osztályt látunk, amelynek neve Munkavállaló. Először paraméterek nélkül is definiálhatod, ami azt jelenti, hogy az osztály specifikus inicializálás nélkül jön létre. Ez egy fontos alap, amely biztosítja, hogy később ne kapj hibákat objektumok létrehozásakor.
Most hozz létre egy objektumot ebből az osztályból. Ehhez elég, ha használsz egy üres zárójelet az osztály neve után:
Ebben az esetben van egy Munkavállaló objektumunk, amelyet most hoztunk létre. A következő lépés az, hogy bővítsük az osztályt tulajdonságokkal. Például hozzáadhatnál egy nevet az Munkavállaló osztályhoz.
Először definiálnod kell egy inicializálót, amely az osztályod konstruktoraként szolgál. Ez a __init__ metódus révén történik.

Itt láthatod, hogyan definiálható egy __init__ konstruktor. A nevet paraméterként adjuk át, és a self kulcsszót használjuk, hogy a nevet az aktuális objektumhoz rendeljük.
Most, hogy van egy tulajdonságod, amikor objektumot hozol létre, közvetlenül megadhatsz egy nevet:

Ha most létrehozod a résztvevő objektumot a "Jan" névvel, a név az példányban tárolásra kerül. Az automatikus kiegészítés segítségével ellenőrizheted, hogy a név helyesen lett beállítva.
A tulajdonságok használatához a pontoperátor segítségével léphetsz kapcsolatba velük:

Itt érheted el az objektumod tulajdonságait. Ebben az esetben kiírod a résztvevő nevét.
A tulajdonságok mellett módszereket is implementálhatsz. Egy módszer létrehozása hasonlóan működik, mint egy funkció definiálása:

Itt definiálod az bejelentkezik módszert. Ismét jegyezd meg, hogy a self automatikusan paraméterként van átadva a módszernek, hogy hozzáférj az példányhoz. A bejelentkezéskor például ki tudnánk írni egy sikerüzenetet:

Ha most meghívod a bejelentkezik módszert, az alábbiaként néz ki:

Itt a bejelentkezik módszert hívod meg a résztvevő példányon, ami visszajelzést ad a bejelentkezésről.
Végül paramétereket is átadhatunk a módszereknek, hasonlóan a funkciókhoz. Például egy leiratkozás metódust, amely egy paramétert vár a korai leiratkozásra:

Itt elemzed, hogy a résztvevő szeretne-e korai leiratkozni, és kiírsz egy megfelelő üzenetet.
ScreenShot_320
Ez megmutatja, mennyire interaktívak lehetnek az osztályaid és módszereid, és hogyan reagálnak a bemenetekre.
Végül ismét össze kellene foglalnunk a tanult alapelveket. Az osztályok definiálásának lényege, hogy olyan attribútumokat és módszereket definiálunk, amelyek a hozzárendelt objektumokhoz relevánsak. Az __init__ konstruktor központi szerepet játszik az attribútumok beállításában az objektum létrehozásakor.
Összefoglalás – Saját osztályok létrehozása és használata Pythonban
A fent említett alapelvek megértésével és alkalmazásával hatékony és rugalmas programokat fejleszthetsz Pythonban. Olyan osztályokat hozhatsz létre, amelyek specifikus funkciókat és tulajdonságokat kapszuláznak, hogy a programozás felhasználóbarátabb és hatékonyabb legyen.
Gyakran ismételt kérdések
Hogyan definiálok egy osztályt Pythonban?Használj class kulcsszót, majd az osztály nevét és egy kettőspontot.
Mi a célja az __init__ konstruktorának?Azt használják, hogy inicializálási lépéseket végezzenek az objektum létrehozásakor.
Hogyan férhetek hozzá egy objektum tulajdonságaihoz?Használj pontoperátort, az objektum neve után, például objektum.tulajdonság.
Megadhatok több paramétert egy módszernek?Igen, olyan módszereket definiálhatsz, amelyek több paramétert is elfogadnak.
Használhatok funkciókat az osztályaimban?Igen, a módszerek nem mások, mint az osztályhoz kapcsolódó funkciók.