Kezdő útmutató a Python objektum-orientált programozásához

Kezdő útmutató a Python objektum-orientált programozásához

A Python -t a Raspberry Pi -től a gépi tanulásig mindenben használják. Ha azonban bármilyen nagy projekten szeretne dolgozni, tudnia kell, hogyan működik a Python az objektum-orientált programozással (OOP). Ez a cikk az alapvető tudnivalókat tartalmazza.





Ha nem igazán szeret programozni, miért nem nézi meg ezeket a legjobb Monty Python vázlatokat? Végül is inspirálták a nyelvet!





Várj, a Python nem igazi nyelv?

Egy dolgot tisztázzunk: a Python egy igazi programozási nyelv, népszerű és gyorsan növekszik. Csak mert pszeudokódként olvasható, és megteheti kódold vele a Minecraftot a Pi -n , ez nem azt jelenti, hogy le kell vonnod, mint egy kisebb nyelvet.





Az OOP a modern szoftverfejlesztés sarokköve, és a Python több mint képes lépést tartani. Lehet, hogy egy -két dolgot másképp csinál, mint a többi mainstream nyelv, de ne hagyja, hogy ez elriasztja.

Ez az oktatóanyag feltételezi a Python alapvető ismereteit, de az összes összetett dolgot lefedjük. Ha még nem ismeri a Python használatát, miért nem nézi meg ezeket a trükköket egy új programozási nyelv elsajátításához, vagy mi a helyzet egy egyszerű projekttel, például a Google Táblázatok olvasásával és írásával a Python segítségével?



A Python előfeltételei és beállítása

Mielőtt elkezdené, érdemes elvégeznie a Python fejlesztői környezet beállítását. Mi használni fogjuk Python 3.6.5 , és bár használhat régebbi verziókat, kevesebb problémája lesz, ha meglehetősen új verziót használ.

Érdemes virtuális környezetet létrehozni, ha még nincs ilyen, és telepítse a PIP for Python alkalmazást ha ez nincs telepítve (a Python legtöbb modern telepítésével együtt). Ha elkészült ezekkel a beállításokkal, akkor indulhat. Lássunk neki!





A Python alapjai: Osztályok

NAK NEK osztály az OOP alapvető építőköve. Az osztály olyan, mint egy terv vagy terv. Meghatározzák az objektum jellemzőit. Például, ha van autóosztálya, akkor kiírhatja, hogy négy kerék, legalább egy ülés és egy motor van.

A következőképpen készíthet osztályt a Pythonban:





class Vehicle:
''' This class defines vehicles. '''
pass

Egyszerű igaz? Van itt néhány dolog. Figyelje meg a megjegyzést az osztály tetején. Ez egy különleges megjegyzés, a dokstring . Kicsit meg kell magyaráznia a kódot. A hármas idézőjelek használatával ( '' '' ), azt mondod Pythonnak, hogy ez egy dokstring.

Az passz kulcsszó azt mondja a Pythonnak, hogy ne tegyen semmit. Ez egy különleges szó, és úgy is gondolhat rá, mint egy todo. Futtatni fogja a kódot, de valójában nem tesz semmit.

Ha futtatja ezt a kódot, látni fogja, hogy semmi sem történik. Neked kell példányosítani te osztály. Ez gyakorlatilag azt jelenti, hogy az osztályban meghatározott terv alapján megyünk és építünk egy objektumot. Annyi másolatot hozhat létre, amennyit csak akar, mindegyik különböző tulajdonságokkal. Ezt a következőképpen teheti meg:

red_car = Vehicle()

Ha újra futtatja, látni fogja, hogy semmi sem történik. A kód helyesen működik, de nem mondtad neki, hogy tegyen valami észrevehetőt. Az Jármű osztály határozza meg a jármű tervrajzait, és ez a legújabb sor létrehoz egy járműobjektumot, és nevet ad neki piros autó .

Annyi tárgyat készíthet, amennyit csak akar:

red_car = Vehicle()
green_car = Vehicle()
blue_car = Vehicle()

Adjunk hozzá még néhány kódot. Adjon hozzá egy ún __benne__ hoz Jármű osztály:

class Vehicle:
''' This class defines vehicles. '''
def __init__(self, color='plain'):
''' Setup some custom car properties '''
print('New car made!')
self.color = color
red_car = Vehicle()
green_car = Vehicle()
blue_car = Vehicle()

Különös figyelmet fordítson erre __benne__ módszer. Két aláhúzással kell kezdődnie és végződnie. Ez egy speciális módszer a Pythonban. Automatikusan hívja, amikor új objektumot hoz létre. Ennek a kódnak a futtatása az 'Új autó készült!' háromszor.

Végül, __benne__ úgynevezett egyéni érvet vesz fel szín . A közvetlenül azt követő egyenlőségjel és karakterlánc azt mondja a Pythonnak, hogy állítsa be a színét „sima” színre, ha nincs megadva. Módosíthatja a példányokat az autó színének beállításához a létrehozáskor:

red_car = Vehicle(color='red')
green_car = Vehicle(color='green')
blue_car = Vehicle(color='blue')

Ha kinyomtatja az autó színét, látni fogja, hogy minden példány más -más színű, annak ellenére, hogy mindhárom azonos specifikáció szerint készült (az osztály). A Python lehetővé teszi szinte minden változó vagy objektum elérését --- sok más nyelv nem teszi lehetővé ezt:

print(red_car.color)
print(green_car.color)
print(blue_car.color)

Ez azért működik, mert kiosztotta szín nak nek én.szín . Az Self egy másik speciális kulcsszó a Pythonban, és az osztály minden egyes példányára utal. Amikor önmagát használja, beállíthatja vagy elérheti az adott példány egyedi adatait. A piros autó például piros színű.

Módosítsa a sajátját __benne__ módszer az autózaj változóban való tárolására:

self.noise = 'Vroooom'

Az autózaj kinyomtatásához egyszerűen elérheti a zaj változó, mint a színeknél, de ez nem a legjobb ötlet. Mi van akkor, ha autóvezetés közben azt szeretné, ha más kód is futna egyszerre, esetleg olyan kód, amelyet még nem írt? Vagy mi van, ha a jövőben meg akarja változtatni az autó vezetési módját? Létrehozásával a funkció (más néven a módszer ), szigorúan ellenőrizheti a dolgok működését. Ezt add hozzá a sajátod alá __benne__ módszer:

def drive(self):
print(self.noise)

Ezt a módszert egyszerűen nevezheti:

red_car.drive()

Amikor hívja a hajtás módszerrel a Python kinyomtatja a hangot. Ezt kibővítheti az összes feladat elvégzésére, de hagyja most.

Szép munka! Mostanra határozottan kézben kell tartania az alapokat. Képesnek kell lennie saját osztályok létrehozására és használatára, amelyek mindegyike saját képességekkel és funkciókkal rendelkezik.

Mi a helyzet a Python privát változóival?

A privát objektumok nagyon gyakoriak a legtöbb más nyelven. Ezek egyszerűen változók vagy függvények, amelyekhez az osztályon kívül nem lehet hozzáférni. Lehetnek olyan kódok, amelyeknek használat előtt különleges feltételeknek kell megfelelniük, vagy egyszerűen csak belső használatra tervezték őket. Bármi legyen is az ok, a példányok nem férhetnek hozzá a privát tagokhoz ... hacsak nem Pythonban kódol.

A Pythonnak nincsenek privát tagjai. Ehelyett a Python becsületrendszerre támaszkodik: 'Mindannyian beleegyező felnőttek vagyunk.' A Python programozói megértik, hogy érdemes bánni az osztály érzékeny belső elemeivel, és ez így van rendjén, tehát soha semmi ne legyen igazán elérhetetlen.

A Pythonnak azonban van egy elfogadott konvenciója bizonyos változók „privátként” való megjelölésére a „Ez a változó belső használatra készült, és valószínűleg nem kell hozzá nyúlnia” értelmében. Az egyezmény szerint a változóneveket aláhúzással kell ellátni:

_some_secret_variable = 42

Ez figyelmeztetésként szolgál a többi programozó számára. A Python nem akadályozza meg, hogy hozzáférjen ehhez, de az aláhúzás azt tanácsolja, hogy ezt nem erre a célra tervezték, és saját felelősségére kell folytatnia.

Néha ez a Python módja a rejtett dolgokkal való bánásmódnak, de fennáll annak a kockázata, hogy a dolgok esetleg nem működnek megfelelően.

Az öröklődés megértése a Pythonban

Az öröklés egy másik módja annak, hogy csökkentsük a párhuzamosságot és újra használjuk a kódot. A szülő és gyermek kapcsolatára gondolva az öröklődés lehetővé teszi a gyermek hogy közös kódot osszon meg a szülő . Vegyünk végre egy elektromos autót, amely a szülőktől örököl.

Adja hozzá ezt a kódot a sajátja alá Jármű osztály:

class ElectricCar(Vehicle):
''' Electric vehicle class. '''
def charge(self):
print('Zzz')
electric_car = ElectricCar()
electric_car.charge()
electric_car.noise = 'Whoosh'
electric_car.drive()

Azután Elektromos autó van definiálva, a Jármű osztály két zárójelben van megadva. Ez elmondja Pythonnak Elektromos autó gyermeke Jármű . Ez hozzáférést biztosít a benne megadott összes adathoz és módszerhez Jármű .

Az elektromos autó saját speciális módszerekkel rendelkezik. Feltölthető (amit más járművek nem tudnak). Az autózaj megváltoztatásával, majd vezetéssel láthatja, hogy az elektromos autó más hangot ad ki, és nem kellett meghatároznia a vezetési módot. Ennek oka az, hogy a meghajtót a szülő örökölte.

Bővítse Python ismereteit

Ezek a példák bemutatták, hogy az OOP milyen egyszerű a Pythonban. Csak az alapvető dolgokat ismertettük, de ha már leírtad, a többi egyszerű.

megváltoztathatja a snapchat felhasználónevét

Ha folytatni szeretné a Python tanulását, vagy esetleg átülteti ezeket az OOP készségeket a gyakorlatba, miért nem nézi meg tömbök és listák a Pythonban , vagy mi a helyzet a Python és a JavaScript kommunikációjával?

Ha mindez többre vágyik, ne felejtse el megnézni ezeket a legjobb webhelyeket a Python tanulásához.

Részvény Részvény Csipog Email Törölje ezeket a Windows fájlokat és mappákat a lemezterület felszabadításához

Törölnie kell a lemezterületet a Windows számítógépen? Íme a Windows fájlok és mappák, amelyek biztonságosan törölhetők a lemezterület felszabadítása érdekében.

Olvassa tovább
Kapcsolódó témák
  • Programozás
  • Programozás
  • Piton
  • Objektumorientált programozás
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, véleményeket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide