Tartalomjegyzék[Elrejt][Előadás]
A fejlesztők körében az objektum-orientált programozás jelentős követőket vonzott. A népszerű számítógépes nyelv, a Python szintén ragaszkodik az objektum-orientált paradigmához.
Az objektumok és osztályok Pythonban történő meghatározásával foglalkozik, amely az OOP-elvek alapját képezi. Ebben az „objektum-orientált programozás a Pythonban” oktatóanyagban megtudhatja, hogyan deklarálhat Python-osztályokat, hogyan hozhat létre objektumokat belőlük, és hogyan használhatja a négy OOP technikát.
Szóval, az első dolog.
Mi az objektum-orientált programozás?
Az objektum-orientált programozás (OOP) fő célja az „objektumok” létrehozása. Összekapcsolt változók és függvények gyűjteménye alkot egy objektumot.
Ezeket a változókat gyakran az objektum attribútumainak, viselkedését pedig funkcióinak nevezik. Ezek az elemek hatékonyabb és érthetőbb szerkezetet biztosítanak az alkalmazásnak. Az autó egy cikk példája.
Ha az autó egy cikk lenne, akkor attribútumai között szerepelnének olyan dolgok, mint a színe, modellje, ára, márkája stb. Ezenkívül gyorsítana, lassítana és sebességet váltana.
Egy másik illusztráció: Ha egy kutyára mint tárgyra gondolunk, akkor néhány jellemzője lehet a színe, fajtája, neve, súlya stb. És mozogna, ugat, játszik stb.
Mivel olyan valós fogalmakat épít be a programozásba, mint az objektumok, elrejtés, öröklődés stb., az objektumorientált programozás jól ismert. Mivel nagyon hasonlít a valós körülményekhez, a vizualizáció egyszerűbbé válik.
Objektum-orientált programozási fogalmak
Osztályok és objektumok Pythonban
A többi objektumorientált nyelvhez hasonlóan a Python is lehetővé teszi osztályok tervezését az objektumok generálására. A Python legnépszerűbb adattípusai, beleértve a karakterláncokat, listákat, szótárakat és egyéb objektumokat, beépített osztályok.
Az osztály összekapcsolt metódusok és példányváltozók csoportja, amelyek egy bizonyos típusú objektumot határoznak meg. Az osztály egy objektum modelljének vagy sablonjának tekinthető. Az osztályt alkotó változókat attribútumoknak nevezzük.
Az objektum egy osztály tagja, amely meghatározott attribútumkészlettel rendelkezik. Emiatt tetszőleges számú objektum hozható létre ugyanabban az osztályban.
A Python osztályok meghatározása a class szó használatával történik, amelyet az osztálynév és egy kettőspont követ. Egy papagáj osztály illusztrációja lehet:
Itt deklaráljuk az üres Parrot osztályt a class kulcsszó használatával. Példányokat készítünk osztályokból. A példány egy adott objektum, amely egy bizonyos osztályból készült. A „pass”-t gyakran használják olyan kódok kiállásaként, amelyek megvalósításáról pillanatnyilag lemondhatunk. A „pass” kulcsszó használatával hiba jelentkezése nélkül is végrehajthatjuk a Python kódot.
Egy osztály példányosítása egy objektumot (példányt) eredményez. Egy osztály létrehozásakor csak az objektum leírása van megadva. Ennek eredményeként nincs tárhely vagy RAM lefoglalva.
Példa egy papagáj osztály objektumra:
Az Obj egy Parrot osztályú objektum ebben az esetben.
Tegyük fel, hogy tudunk a papagájokról konkrétumokat. Most bemutatjuk, hogyan kell létrehozni a papagáj osztályt és objektumait.
Speciális módszer (__init__)
Az init nevű metódus meghatározza azokat az attribútumokat, amelyekkel minden Parrot objektumnak rendelkeznie kell (). Új Parrot objektum létrehozásakor az __init__ függvény létrehozza az objektum kezdeti állapotát az általunk megadott értékek hozzárendelésével az objektum tulajdonságain belül.
Tehát az osztály minden új példánya a __init__() használatával inicializálódik. Bár az __init__() tetszőleges számú paramétert képes elfogadni, a self mindig az első paraméter.
Az aktív osztálypéldányra való hivatkozás szerepel az önargumentumban. A self paraméter, amely egy osztály aktuális objektumának címére hivatkozik, és hozzáférést biztosít számunkra annak (az objektum) változóinak adataihoz, ezt jelzi.
Példa 1
A fenti kódban létrehoztunk egy Parrot nevű osztályt. Ezután meg kell határozni a tulajdonságokat. Egy dolog jellemzői a tulajdonságai. Az osztály __init__ függvényében vannak megadva ezek a jellemzők.
Egy objektum létrehozásakor az inicializáló metódus az, amelyet kezdetben hívunk meg. Ezután létrejön a Parrot osztály példányai. A Blaze és a Wonda ebben az esetben hivatkozások (értékek) az új objektumainkra. A __class .species lehetővé teszi a class attribútum elérését.
Egy osztály minden példánya ugyanazokkal a jellemzőkkel rendelkezik. A példány jellemzői a blaze.name és a blaze.age használatával is elérhetők. Egy osztály minden példányának azonban egyedi példányattribútumai vannak.
Példa 2
Mód
Az osztály törzsében meghatározott függvényeket metódusoknak nevezzük. Arra szolgálnak, hogy meghatározzák, hogyan viselkedjen egy tétel.
Két módszer, a sing() és a dance, a fent említett alkalmazásban (). Mivel egy példány objektumon, például a flame-en hívják meg őket, ezeket példánymetódusoknak nevezzük.
Az OOPS koncepció alapjai
Az objektumorientált programozás négy alapötlete a következő:
- Öröklés
- Egységbezárás
- polimorfizmus
- Absztrakció
Öröklés
Az emberek gyakran mondják az újszülötteknek, hogy olyan arcvonásaik vannak, amelyek hasonlítanak a szüleikéhez, vagy hogy bizonyos tulajdonságokat a szüleiktől örököltek.
Lehetséges, hogy Ön is megfigyelte, hogy néhány jellemzője megosztja a szüleit. A való világ helyzete meglehetősen hasonlít az örökléshez is.
Ebben az esetben azonban a „szülő osztályok” jellemzői átadódnak a „gyermek osztályoknak”. Ezeket a szempontokat ebben az összefüggésben „tulajdonságoknak” és „módszereknek” nevezzük.
Egy osztály származtathatja metódusait és attribútumait egy másik osztályból az öröklődésként ismert technika használatával. Az öröklődés az a folyamat, amikor egy gyermekosztály megkapja a szülőosztály tulajdonságait.
Példa:
Az Ember szülőosztályt a Fiú gyermekosztály örökli a fenti példában. Mivel a Boy a Humantól örököl, hozzáférhetünk minden metódusához és attribútumához, amikor létrehozzuk a Boy osztály példányát.
A Fiú osztályban egy iskolanév nevű metódust is definiáltak. A szülő osztály objektum nem tud hozzáférni a schoolName metódushoz. A schoolName metódus azonban meghívható egy gyermekosztály objektum (Boy) létrehozásával.
Egységbezárás
A program minden változójának globális hozzáférést adni nem bölcs lépés az osztályokkal való munka és az érzékeny adatok kezelése során.
Anélkül, hogy a program teljes hozzáférést biztosítana ezekhez a változókhoz, a beágyazás mechanizmust biztosít számunkra, hogy megszerezzük a szükséges változókat.
A kifejezetten erre a célra meghatározott módszerek használhatók a változók adatainak frissítésére, szerkesztésére vagy törlésére. Ennek a programozási módszernek az előnye a fokozott biztonság és az adatbevitel ellenőrzése.
Nézze meg, milyen gyorsan érhetők el a változók az alábbi bemutatón:
polimorfizmus
Tegyük fel, hogy a telefonját használja a Instagram hírcsatornák. Amikor kedvet kaptál ahhoz, hogy zenét hallgass, beléptél a Spotify-ba, és elkezdted lejátszani kedvenc dalodat.
Egy idő után hívás érkezett, ezért szüneteltetve bármit is csinált a háttérben, hogy válaszoljon rá. A barátja felhívott, és azt kérte, hogy küldjön nekik SMS-t egy bizonyos személy telefonszámáról.
Tehát elküldted neki a telefonszámot SMS-ben, és folytattad a feladataidat. Felvettél valamit? Egyetlen eszközzel – mobiltelefonjával – böngészhet a hírcsatornák között, hallgathat zenét, fogadhat és kezdeményezhet telefonhívásokat, valamint üzeneteket.
Ezért a polimorfizmus ahhoz hasonlítható. A poli azt jelenti, hogy számos, a morf pedig különböző formákat jelöl. Ezért a polimorfizmus egésze olyasvalamire utal, amelynek különböző formái vannak.
Vagy „valami”, ami a körülményektől függően többféle viselkedést mutathat. Az OOPS-ban a polimorfizmus azonos nevű, de eltérő viselkedésű függvényeket ír le. Alternatív megoldásként egy másik függvényaláírás ugyanazzal a függvénynévvel (a függvénynek átadott paraméterek).
Példa:
Itt az állat változó segítségével iterálhatjuk a Zebra és a Nyúl objektumait, a megfelelő példánymódszerekkel. Ennek eredményeként mind a zebra, mind a nyúl viselkedését (szín() & eats()) egyetlen állatnak nevezett változó reprezentálja. Ezért betartja a polimorfizmus szabályait.
Absztrakció
Valószínűleg laptopot, telefont vagy táblagépet használ a tartalom olvasásához. Olvasása közben feltehetően jegyzetel is, aláhúzza a kulcsfontosságú részeket, és esetleg el is tárol bizonyos információkat a személyes fájljaiban.
Ezt olvasva csak egy „képernyőt” láthat az Ön számára megjelenített adatokkal. Csak a billentyűzet billentyűit látja gépelés közben, így nem kell aggódnia az olyan belső finomságok miatt, mint például, hogy egy billentyű lenyomása hogyan okozhatja a szó megjelenését a képernyőn.
Alternatív megoldásként hogyan indíthat el új lapot egy gomb megnyomásával a képernyőn.
Ezért bármi, amit ebben a helyzetben megfigyelhetünk, elvont. Csak az eredményt láthatjuk, és nem a belső bonyodalmakat (amelyek valójában számítanak nekünk).
Ehhez hasonlóan az absztrakció csak azokat a funkciókat tárja fel, amelyekkel minden rendelkezik, miközben elrejti a megvalósításokat vagy a belső részleteket.
Az absztrakció fő célja, hogy elrejtse a háttérinformációkat és az esetleges idegen adatok megvalósítását, hogy az emberek csak azt lássák, amit látniuk kell. Segít a kód összetettségének kezelésében.
Példa:
Itt van jelen egy járműhöz kapcsolódó absztrakt osztály. Mivel az ABC absztrakt osztályból örökli, absztrakt. Mivel az absztrakt metódusok nincsenek meghatározva, vagy üresek maradnak, a Jármű osztály rendelkezik egy kerekek száma nevű absztrakt metódussal, amelynek nincs definíciója.
Előre számítják az absztrakt osztályokat öröklő osztályokat, hogy megadják a metódus megvalósítását.
Az OOPS-koncepciók előnyei
- A tokozással magas szintű biztonság és adatvédelem érhető el.
- Rugalmasság abban, hogy ugyanannak az osztálynak több polimorf változata legyen.
- A kód magas szintű bonyolultságát az absztrakció csökkentette.
- Ahelyett, hogy több száz sornyi kódon keresztül kellene átszűrni egyetlen problémát, a programozás modularitása egyszerűvé teszi a hibakeresést.
- A kód újrafelhasználását az okozza, hogy egy utódosztály örökölte a szülőosztály tulajdonságait.
- A hatékony problémamegoldás azért lehetséges, mert olyan osztályokat hozunk létre, amelyek minden mini-probléma esetén elvégzik a szükséges műveleteket. A következő probléma még gyorsabban megoldható, mivel ezeket az osztályokat újra felhasználhatjuk.
Következtetés
Összegezve, megismertük az OOPS ötleteket a Pythonban, a jelenlegi legforróbb programozási paradigmában.
Miután elolvasta ezt, bizonyára rájött, hogy az OOPS paradigma teljes egészében az osztályok és objektumok gondolatával foglalkozik. és OOPS fogalmak, mint például a beágyazás, a polimorfizmus, az öröklődés és az absztrakció.
Hagy egy Válaszol