Taula de continguts[Amaga][Espectacle]
Entre els desenvolupadors, la programació orientada a objectes ha atret un nombre considerable de seguidors. El popular llenguatge informàtic Python també s'adhereix al paradigma orientat a objectes.
S'ocupa de la definició d'objectes i classes en Python, que constitueix la base dels principis de POO. En aquest tutorial sobre "programació orientada a objectes a Python", aprendràs a declarar classes de Python, a crear-ne objectes i a utilitzar les quatre tècniques OOP.
Per tant, primer.
Què és la programació orientada a objectes?
L'objectiu principal de la programació orientada a objectes (OOP) és la creació d'objectes. Una col·lecció de variables i funcions interconnectades forma un objecte.
Aquestes variables s'anomenen sovint com a atributs de l'objecte, i els seus comportaments s'anomenen amb freqüència com les seves funcions. Aquests elements proporcionen a l'aplicació una estructura més eficaç i entenedora. Un automòbil és un exemple d'element.
Si l'automòbil fos un article, els seus atributs inclourien coses com el seu color, model, preu, marca, etc. A més, acceleraria, frenaria i canviaria de marxa.
Una altra il·lustració: si pensem en un gos com un objecte, llavors algunes de les seves característiques podrien ser el color, la raça, el nom, el pes, etc. I es mou, borda, juga, etc.
Com que incorpora conceptes del món real com els objectes, l'amagat, l'herència, etc. a la programació, la programació orientada a objectes és ben coneguda. Com que és molt semblant a les circumstàncies del món real, la visualització es fa més senzilla.
Conceptes de programació orientada a objectes
Classes i objectes en Python
Com tots els altres llenguatges orientats a objectes, Python us permet dissenyar classes per generar objectes. Els tipus de dades més populars a Python, incloses cadenes, llistes, diccionaris i altres objectes, són classes integrades.
Una classe és un grup de mètodes enllaçats i variables d'instància que defineixen un determinat tipus d'objecte. Una classe es pot veure com el model o plantilla d'un objecte. Les variables que formen una classe es coneixen com a atributs.
Un objecte és un membre d'una classe que té un conjunt definit d'atributs. Per això, es poden crear qualsevol nombre d'objectes utilitzant la mateixa classe.
Les classes de Python es defineixen utilitzant la paraula classe, seguida del nom de la classe i dels dos punts. Una il·lustració d'una classe de lloros podria ser:
Aquí, declarem la classe buida Parrot utilitzant la paraula clau class. Creem instàncies a partir de classes. Una instància és un objecte particular que es va fer a partir d'una classe determinada. 'pass' s'utilitza sovint com a substitut del codi la implementació del qual podem renunciar de moment. Podem executar el codi de Python sense provocar cap error mitjançant la paraula clau "passar".
Una instanciació d'una classe dóna lloc a un objecte (instància). Quan es crea una classe, només es defineix la descripció de l'objecte. Com a resultat, no s'assigna cap emmagatzematge ni memòria RAM.
Un exemple d'objecte de classe de lloro és:
Obj és un objecte de classe Parrot en aquest cas.
Diguem que sabem detalls sobre els lloros. Ara demostrarem com crear la classe de lloro i els seus objectes.
Mètode especial ( __init__ )
Un mètode anomenat init defineix els atributs que ha de tenir cada objecte Parrot (). Quan es forma un objecte Parrot nou, la funció __init__ crea l'estat inicial de l'objecte assignant els valors que proporcionem dins de les propietats de l'objecte.
Per tant, cada nova instància de la classe s'inicialitza utilitzant __init__(). Tot i que __init__() pot acceptar qualsevol nombre de paràmetres, self sempre és el primer paràmetre.
S'inclou una referència a la instància de classe activa a l'autoargument. El paràmetre self, que enllaça amb l'adreça de l'objecte actual d'una classe i ens dóna accés a les dades de les seves variables (de l'objecte), ho indica.
Exemple 1
Hem establert una classe anomenada Loro al codi anterior. A continuació, es defineixen les propietats. Les característiques d'una cosa són les seves propietats. La funció __init__ de la classe és on s'especifiquen aquestes característiques.
Quan es forma un objecte, el mètode inicialitzador és el que s'anomena inicialment. A continuació, es creen instàncies de la classe Parrot. Blaze i Wonda en aquest cas són referències (valors) als nostres nous objectes. __class .species ens permet accedir a l'atribut class.
Cada instància d'una classe té les mateixes característiques. També es pot accedir a les característiques de la instància mitjançant blaze.name i blaze.age. Tot i això, totes les instàncies d'una classe tenen atributs d'instància únics.
Exemple 2
Mètodes
Les funcions definides dins del cos d'una classe s'anomenen mètodes. S'utilitzen per especificar com es comportarà un element.
Dos mètodes, sing() i ball, es defineixen a l'aplicació esmentada (). Com que s'invoquen en un objecte d'instància, com ara flame, s'anomenen mètodes d'instància.
Fonaments del concepte OOPS
Les quatre idees bàsiques de la programació orientada a objectes són:
- Herència
- Encapsulació
- Polimorfisme
- Abstracció
Herència
Les persones sovint diuen als nounats que tenen característiques facials que s'assemblen a les dels seus pares o que han heretat trets particulars dels seus pares.
És possible que també hagis observat que comparteixes algunes característiques amb els teus pares. La situació del món real també és força semblant a l'herència.
Tanmateix, en aquest cas, les característiques de les "classes pares" es transmeten a les "classes infantils". Aquests aspectes s'anomenen "propietats" i "mètodes" en aquest context.
Una classe pot derivar els seus mètodes i atributs d'una altra classe mitjançant la tècnica coneguda com a herència. L'herència és el procés d'una classe fill que rep les propietats d'una classe pare.
exemple:
La classe pare Human és heretada per la classe fill Boy de l'exemple anterior. Com que Boy està heretant de Human, podem accedir a tots els seus mètodes i atributs quan creem una instància de la classe Boy.
A la classe Boy, també s'ha definit un mètode anomenat schoolName. L'objecte de classe pare no pot accedir al mètode schoolName. Tanmateix, el mètode schoolName es pot cridar creant un objecte de classe fill (Boy).
Encapsulació
Donar accés global a totes les variables del programa no és un moviment prudent quan es treballa amb classes i es gestionen dades sensibles.
Sense donar accés complet al programa a cap d'aquestes variables, l'encapsulació ens proporciona un mecanisme per obtenir les variables necessàries.
Els mètodes que es defineixen explícitament per a aquest propòsit es poden utilitzar per actualitzar, editar o suprimir dades de variables. Aquest mètode de programació té els avantatges de millorar la seguretat i el control sobre l'entrada de dades.
Vegeu amb quina rapidesa es pot accedir a les variables a la demostració següent:
Polimorfisme
Suposem que utilitzeu el telèfon per navegar Feeds d’Instagram. Quan vas sentir les ganes d'escoltar música, vas accedir a Spotify i vas començar a reproduir la teva cançó preferida.
Al cap d'un temps, vau rebre una trucada, així que vau posar en pausa el que estàveu fent en segon pla per respondre-la. El teu amic va trucar i li va demanar que li enviïs un missatge de text amb el número de telèfon d'una persona determinada.
Així que li vas enviar el número de telèfon per SMS i vas continuar amb les teves tasques. Has agafat alguna cosa? Amb un sol dispositiu, el vostre telèfon mòbil, podeu navegar per canals, escoltar música, rebre i fer trucades telefòniques i enviar missatges.
Per tant, el polimorfisme és comparable a aquest. Poly significa nombrosos, i morph denota diferents formes. Per tant, el polimorfisme en el seu conjunt es refereix a alguna cosa amb diverses formes.
O "alguna cosa" que, depenent de la circumstància, pot mostrar una varietat de comportaments. A OOPS, el polimorfisme descriu funcions amb els mateixos noms però comportaments diferents. Alternativament, una signatura de funció diferent amb el mateix nom de funció (paràmetres passats a la funció).
exemple:
Aquí, podem utilitzar l'animal variable per iterar entre els objectes de la zebra i el conill, utilitzant els seus respectius mètodes d'instància. Com a resultat, el comportament (color() i menja()) tant de la zebra com del conill es representen aquí per una única variable anomenada animal. Per tant, s'adhereix a les regles del polimorfisme.
Abstracció
El més probable és que utilitzeu un ordinador portàtil, un telèfon o una tauleta per llegir aquest contingut. Mentre el llegiu, presumiblement també esteu prenent notes, subratllant passatges clau i potser emmagatzemant informació als vostres fitxers personals.
Tot el que podeu veure quan llegiu això és una "pantalla" amb les dades que se us mostren. Només veieu les tecles del teclat mentre escriviu, de manera que no us haureu de preocupar per subtileses internes, com ara com prémer una tecla pot fer que aquesta paraula aparegui a la pantalla.
Alternativament, com prémer un botó a la pantalla es pot iniciar una pestanya nova.
Per tant, tot el que podem observar en aquesta situació és abstracte. Només podem veure el resultat que està creant i no les complexitats interiors (que realment ens importen).
De manera semblant a això, l'abstracció només revela les funcions que tot té mentre amaga qualsevol implementació o detall intern.
L'objectiu principal de l'abstracció és ocultar la informació de fons i qualsevol implementació de dades estranyes perquè la gent només vegi allò que necessita veure. Ajuda a gestionar la complexitat del codi.
exemple:
Aquí hi ha una classe abstracta relacionada amb el vehicle. Com que hereta de la classe abstracta ABC, és abstracte. Com que els mètodes abstractes no es defineixen o romanen buits, la classe Vehicle té un mètode abstracte anomenat no de rodes que no té definició.
Anticipen les classes que hereten les classes abstractes per donar la implementació del mètode.
Beneficis dels conceptes OOPS
- En encapsular, s'aconsegueix una alta seguretat i privadesa de dades.
- Flexibilitat per tenir moltes versions polimòrfiques de la mateixa classe.
- L'alt nivell de complexitat del codi es va reduir per l'abstracció.
- En lloc de tamisar centenars de línies de codi per localitzar un sol problema, la modularitat de la programació fa que la depuració sigui senzilla.
- La reutilització del codi és causada per l'herència d'una classe fill de les propietats de la classe pare.
- La resolució efectiva de problemes és possible perquè creem classes que fan les accions necessàries per a cada mini-problema. El següent problema es pot resoldre encara més ràpidament, ja que podem reutilitzar aquestes classes.
Conclusió
En conclusió, vam conèixer les idees OOPS a Python, el paradigma de programació més popular en aquest moment.
Després de llegir això, us heu d'haver adonat que el paradigma OOPS tracta totalment de la idea de classes i objectes. i conceptes OOPS com ara encapsulació, polimorfisme, herència i abstracció.
Deixa un comentari