Índice analítico[Ocultar][Mostrar]
Entre os desenvolvedores, a programación orientada a obxectos atraeu un número considerable de seguidores. O popular linguaxe informático Python tamén se adhire ao paradigma orientado a obxectos.
Trata sobre a definición de obxectos e clases en Python, que constitúe a base para os principios de POO. Neste tutorial sobre "programación orientada a obxectos en Python", aprenderás a declarar clases de Python, crear obxectos a partir delas e utilizar as catro técnicas de POO.
Entón, primeiro.
Que é a programación orientada a obxectos?
O foco principal da programación orientada a obxectos (OOP) é a creación de "obxectos". Unha colección de variables e funcións interconectadas constitúen un obxecto.
Estas variables son frecuentemente referidas como atributos do obxecto, e os seus comportamentos son frecuentemente referidos como as súas funcións. Estes elementos proporcionan á aplicación unha estrutura máis eficaz e comprensible. Un automóbil é un exemplo de artigo.
Se o automóbil fose un artigo, os seus atributos incluirían cousas como a súa cor, modelo, prezo, marca, etc. Ademais, aceleraría, ralentizaría e cambiaría de marcha.
Outra ilustración: se pensamos nun can como un elemento, entón algunhas das súas características poden ser a cor, a raza, o nome, o peso, etc. E estaría movendo, ladrando, xogando, etc.
Dado que incorpora á programación conceptos do mundo real como obxectos, ocultación, herdanza, etc., a programación orientada a obxectos é coñecida. Debido a que é moi semellante ás circunstancias do mundo real, a visualización faise máis sinxela.
Conceptos de programación orientada a obxectos
Clases e obxectos en Python
Como todas as outras linguaxes orientadas a obxectos, Python permítelle deseñar clases para xerar obxectos. Os tipos de datos máis populares en Python, incluíndo cadeas, listas, dicionarios e outros obxectos, son clases integradas.
Unha clase é un grupo de métodos vinculados e variables de instancia que definen un determinado tipo de obxecto. Unha clase pode verse como o modelo ou modelo dun obxecto. As variables que compoñen unha clase coñécense como atributos.
Un obxecto é un membro dunha clase que ten un conxunto definido de atributos. Debido a isto, pódese crear calquera número de obxectos usando a mesma clase.
As clases de Python defínense usando a palabra clase, que vai seguida do nome da clase e dos dous puntos. Unha ilustración dunha clase de loros pode ser:
Aquí, declaramos a clase baleira Parrot usando a palabra clave class. Creamos instancias a partir de clases. Unha instancia é un obxecto concreto que se fixo a partir dunha determinada clase. 'pass' úsase con frecuencia como substituto do código cuxa implementación podemos renunciar polo momento. Podemos executar o código Python sen producir un erro usando a palabra clave "pasar".
Unha instanciación dunha clase dá como resultado un obxecto (instancia). Só se define a descrición do obxecto cando se crea unha clase. Como resultado, non se asigna almacenamento nin RAM.
Un exemplo dun obxecto de clase loro é:
Obj é un obxecto da clase Parrot neste caso.
Digamos que coñecemos detalles específicos sobre papagaios. Agora imos demostrar como crear a clase loro e os seus obxectos.
Método especial ( __init__ )
Un método chamado init define os atributos que debe ter cada obxecto Parrot (). Cando se forma un novo obxecto Parrot, a función __init__ crea o estado inicial do obxecto asignando os valores que proporcionamos dentro das propiedades do obxecto.
Así, cada nova instancia da clase iníciase usando __init__(). Aínda que __init__() pode aceptar calquera número de parámetros, self é sempre o primeiro parámetro.
No autoargumento inclúese unha referencia á instancia de clase activa. O parámetro self, que enlaza co enderezo do obxecto actual dunha clase e dános acceso aos datos das súas variables (do obxecto), así o indica.
1 exemplo
Establecemos unha clase chamada Parrot no código anterior. A continuación, defínense as propiedades. As características dunha cousa son as súas propiedades. A función __init__ da clase é onde se especifican estas características.
Cando se forma un obxecto, o método inicializador é o que se chama inicialmente. A continuación, créanse instancias da clase Parrot. Blaze e Wonda neste caso son referencias (valores) aos nosos novos obxectos. __class .species permítenos acceder ao atributo class.
Cada instancia dunha clase ten as mesmas características. Tamén se pode acceder ás características da instancia usando blaze.name e blaze.age. Con todo, todas as instancias dunha clase teñen atributos de instancia únicos.
2 exemplo
Methods
As funcións definidas dentro do corpo dunha clase chámanse métodos. Empréganse para especificar como se comportará un elemento.
Dous métodos, sing() e dance, están definidos na mencionada aplicación (). Debido a que se invocan nun obxecto de instancia, como flame, denomínanse métodos de instancia.
Fundamentos do concepto OOPS
As catro ideas fundamentais da programación orientada a obxectos son:
- Herdanza
- Encapsulamento
- Polimorfismo
- Abstracción
Herdanza
As persoas adoitan dicir aos recentemente nados que teñen características faciais que se asemellan ás dos seus pais ou que herdaron trazos particulares dos seus pais.
É posible que tamén observases que compartes algunhas características cos teus pais. A situación do mundo real tamén é bastante semellante á herdanza.
Non obstante, neste caso, as características das "clases parentais" transmítense ás "clases infantís". Estes aspectos denomínanse "propiedades" e "métodos" neste contexto.
Unha clase pode derivar os seus métodos e atributos doutra clase mediante a técnica coñecida como herdanza. A herdanza é o proceso de que unha clase filla recibe as propiedades dunha clase pai.
Exemplo:
A clase pai Human é herdada pola clase filla Boy no exemplo anterior. Como Boy está herdando de Human, podemos acceder a todos os seus métodos e atributos cando creamos unha instancia da clase Boy.
Na clase Boy, tamén se definiu un método chamado schoolName. O obxecto da clase pai non pode acceder ao método schoolName. Non obstante, pódese chamar ao método schoolName creando un obxecto de clase fillo (Boy).
Encapsulamento
Dar acceso global a todas as variables do programa non é un movemento sabio cando se traballa con clases e se manexa datos confidenciais.
Sen dar ao programa acceso completo a ningunha desas variables, a encapsulación proporciona un mecanismo para obter as variables necesarias.
Os métodos que se definen explícitamente para este propósito pódense usar para actualizar, editar ou eliminar datos das variables. Este método de programación ten as vantaxes de aumentar a seguridade e o control sobre a entrada de datos.
Vexa o rápido que se pode acceder ás variables na seguinte demostración:
Polimorfismo
Digamos que estás a usar o teu teléfono para buscar Feeds de Instagram. Cando tiveches ganas de escoitar música, accedeches a Spotify e comezaches a reproducir a túa canción favorita.
Despois dun tempo, recibiches unha chamada, polo que puxo en pausa o que estabas facendo en segundo plano para contestala. O teu amigo chamou e solicitou que lle enviases un texto co número de teléfono dunha determinada persoa.
Así que enviácheslle o número de teléfono por SMS e seguiches coas túas tarefas. Colleches algo? Con só un dispositivo, o teu teléfono móbil, podes navegar polas fontes, escoitar música, recibir e facer chamadas telefónicas e enviar mensaxes.
Polo tanto, o polimorfismo é comparable a iso. Poly significa numerosos, e morph denota formas diferentes. Polo tanto, o polimorfismo no seu conxunto refírese a algo con varias formas.
Ou "algo" que, dependendo da circunstancia, pode presentar unha variedade de comportamentos. En OOPS, o polimorfismo describe funcións cos mesmos nomes pero con comportamentos distintos. Alternativamente, unha sinatura de función diferente co mesmo nome de función (parámetros pasados á función).
Exemplo:
Aquí, podemos usar a variable animal para iterar entre os obxectos da cebra e do coello, usando os seus respectivos métodos de instancia. Como resultado, o comportamento (color() e come()) tanto da cebra como do coello están representados aquí por unha única variable chamada animal. Polo tanto, está cumprindo as regras do polimorfismo.
Abstracción
O máis probable é que uses un portátil, un teléfono ou unha tableta para ler este contido. Mentres o le, presumiblemente tamén estás tomando notas, subliñando pasaxes clave e quizais almacenando algunha información nos teus ficheiros persoais.
Todo o que podes ver cando lees isto é unha "pantalla" cos datos que se che están a mostrar. Só ves as teclas do teclado mentres escribes, polo que non tes que preocuparte por sutilezas internas, como como se preme unha tecla pode facer que esa palabra apareza na pantalla.
Alternativamente, como premer un botón na pantalla pode iniciar unha nova pestana.
Polo tanto, todo o que podemos observar nesta situación é abstracto. Só podemos ver o resultado que está creando e non as complejidades internas (que realmente nos importan).
Do mesmo xeito que isto, a abstracción só revela as funcións que todo posúe mentres oculta as implementacións ou detalles internos.
O obxectivo principal de Abstracción é ocultar información de fondo e calquera implementación de datos estraños para que a xente só vexa o que necesita ver. Axuda a xestionar a complexidade do código.
Exemplo:
Aquí está presente unha clase abstracta relacionada co vehículo. Porque herda da clase abstracta ABC, é abstracto. Como os métodos abstractos non están definidos ou quedan baleiros, a clase Vehículo ten un método abstracto chamado número de rodas que carece dunha definición.
Anticipan as clases que herdan as clases abstractas para dar a implementación do método.
Beneficios dos conceptos OOPS
- Ao encapsular, conséguese unha alta seguridade e privacidade dos datos.
- Flexibilidade ao ter moitas versións polimórficas da mesma clase.
- O alto nivel de complexidade do código foi reducido pola abstracción.
- En lugar de examinar centos de liñas de código para localizar un único problema, a modularidade da programación fai que a depuración sexa sinxela.
- A reutilización do código é causada pola herdanza das propiedades da clase pai dunha clase filla.
- A resolución efectiva de problemas é posible porque creamos clases que fan as accións necesarias para cada miniproblema. O seguinte problema pódese resolver aínda máis rapidamente xa que podemos reutilizar esas clases.
Conclusión
En conclusión, coñecemos as ideas de OOPS en Python, o paradigma de programación máis popular neste momento.
Despois de ler isto, debes entender que o paradigma OOPS trata enteiramente coa idea de clases e obxectos. e conceptos OOPS como encapsulación, polimorfismo, herdanza e abstracción.
Deixe unha resposta