Índice del contenido[Esconder][Espectáculo]
Entre los desarrolladores, la programación orientada a objetos ha atraído a muchos seguidores. El popular lenguaje informático Python también se adhiere al paradigma orientado a objetos.
Se ocupa de la definición de objetos y clases en Python, que constituye la base de los principios de programación orientada a objetos. En este tutorial sobre "programación orientada a objetos en Python", aprenderá a declarar clases de Python, crear objetos a partir de ellas y utilizar las cuatro técnicas de programación orientada a objetos.
Entonces, lo primero es lo primero.
¿Qué es la programación orientada a objetos?
El enfoque principal de la programación orientada a objetos (POO) es la creación de "objetos". Una colección de variables y funciones interconectadas constituye un objeto.
Estas variables se denominan con frecuencia los atributos del objeto, y sus comportamientos se denominan con frecuencia sus funciones. Estos elementos dotan a la aplicación de una estructura más eficaz y comprensible. Un automóvil es un ejemplo de un artículo.
Si el automóvil fuera un artículo, sus atributos incluirían cosas como su color, modelo, precio, marca, etc. Además, aceleraría, desaceleraría y cambiaría de marcha.
Otro ejemplo: si pensamos en un perro como un objeto, algunas de sus características podrían ser el color, la raza, el nombre, el peso, etc. Y estaría moviéndose, ladrando, jugando, etc.
Debido a que incorpora conceptos del mundo real como objetos, ocultación, herencia, etc. en la programación, la programación orientada a objetos es bien conocida. Debido a que es tan similar a las circunstancias del mundo real, la visualización se simplifica.
Conceptos de programación orientada a objetos
Clases y objetos en Python
Como todos los demás lenguajes orientados a objetos, Python le permite diseñar clases para generar objetos. Los tipos de datos más populares en Python, incluidas cadenas, listas, diccionarios y otros objetos, son clases integradas.
Una clase es un grupo de métodos vinculados y variables de instancia que definen un determinado tipo de objeto. Una clase puede verse como el modelo o plantilla de un objeto. Las variables que componen una clase se conocen como atributos.
Un objeto es miembro de una clase que tiene un conjunto definido de atributos. Debido a esto, se puede crear cualquier cantidad de objetos utilizando la misma clase.
Las clases de Python se definen usando la palabra clase, seguida del nombre de la clase y dos puntos. Una ilustración de una clase de loros podría ser:
Aquí, declaramos la clase Parrot vacía usando la palabra clave class. Creamos instancias a partir de clases. Una instancia es un objeto particular que se hizo a partir de una determinada clase. 'pass' se usa con frecuencia como sustituto del código cuya implementación podemos prescindir por el momento. Podemos ejecutar el código de Python sin generar un error usando la palabra clave "pasar".
Una instanciación de una clase da como resultado un objeto (instancia). Solo la descripción del objeto se define cuando se crea una clase. Como resultado, no se asigna almacenamiento ni RAM.
Un ejemplo de un objeto de clase loro es:
Obj es un objeto de clase Parrot en este caso.
Digamos que sabemos detalles sobre los loros. Ahora demostraremos cómo crear la clase loro y sus objetos.
Método especial (__init__)
Un método llamado init define los atributos que todo objeto Parrot debe tener (). Cuando se forma un nuevo objeto Parrot, la función __init__ crea el estado inicial del objeto asignando los valores que proporcionamos dentro de las propiedades del objeto.
Entonces, cada nueva instancia de la clase se inicializa usando __init__(). Aunque __init__() puede aceptar cualquier número de parámetros, self es siempre el primer parámetro.
Se incluye una referencia a la instancia de la clase activa en el autoargumento. El parámetro self, que enlaza con la dirección del objeto actual de una clase y nos da acceso a los datos de sus variables (del objeto), significa eso.
ejemplo 1
Establecimos una clase llamada Parrot en el código anterior. A continuación, se definen las propiedades. Las características de una cosa son sus propiedades. La función __init__ de la clase es donde se especifican estas características.
Cuando se forma un objeto, el método inicializador es el que se llama inicialmente. Luego, se crean instancias de la clase Parrot. Blaze y Wonda en este caso son referencias (valores) a nuestros nuevos objetos. __class .species nos permite acceder al atributo de clase.
Cada instancia de una clase tiene las mismas características. También se puede acceder a las características de la instancia mediante blaze.name y blaze.age. Sin embargo, todas las instancias de una clase tienen atributos de instancia únicos.
ejemplo 2
Métodos
Las funciones definidas dentro del cuerpo de una clase se denominan métodos. Se emplean para especificar cómo se comportará un elemento.
Dos métodos, sing() y dance, se definen en la aplicación antes mencionada (). Debido a que se invocan en un objeto de instancia, como una llama, se denominan métodos de instancia.
Fundamentos del concepto OOPS
Las cuatro ideas centrales de la programación orientada a objetos son:
- Herencia
- La encapsulación
- Polimorfismo
- Abstracción
Herencia
Con frecuencia, las personas les dicen a los recién nacidos que tienen características faciales que se asemejan a las de sus padres o que han heredado rasgos particulares de sus padres.
Es posible que también hayas observado que compartes algunas características con tus padres. La situación del mundo real también es bastante similar a la herencia.
Sin embargo, en este caso, las características de las "clases principales" se transmiten a las "clases secundarias". Estos aspectos se denominan "propiedades" y "métodos" en este contexto.
Una clase puede derivar sus métodos y atributos de otra clase usando la técnica conocida como herencia. La herencia es el proceso de una clase secundaria que recibe las propiedades de una clase principal.
Ejemplo:
La clase principal Human es heredada por la clase secundaria Boy en el ejemplo anterior. Debido a que Boy hereda de Human, podemos acceder a todos sus métodos y atributos cuando creamos una instancia de la clase Boy.
En la clase Boy también se ha definido un método denominado schoolName. El objeto de la clase principal no puede acceder al método schoolName. Sin embargo, se puede llamar al método schoolName creando un objeto de clase hijo (Boy).
La encapsulación
Dar acceso global a todas las variables del programa no es una decisión inteligente cuando se trabaja con clases y se manejan datos confidenciales.
Sin darle al programa acceso completo a ninguna de esas variables, la encapsulación proporciona un mecanismo para que obtengamos las variables necesarias.
Los métodos que se definen explícitamente para el propósito se pueden usar para actualizar, editar o eliminar datos de las variables. Este método de programación tiene las ventajas de una mayor seguridad y control sobre la entrada de datos.
Vea qué tan rápido se puede acceder a las variables en la siguiente demostración:
Polimorfismo
Supongamos que está utilizando su teléfono para navegar por la Feeds de Instagram. Cuando sintió la necesidad de escuchar algo de música, accedió a Spotify y comenzó a reproducir su canción favorita.
Después de un tiempo, recibió una llamada, por lo que detuvo lo que estaba haciendo en segundo plano para responderla. Su amigo llamó y le pidió que le enviara un mensaje de texto con el número de teléfono de cierta persona.
Así que le enviaste el número de teléfono por SMS y continuaste con tus tareas. ¿Te has fijado en algo? Con un solo dispositivo, su teléfono móvil, puede navegar a través de feeds, escuchar música, recibir y hacer llamadas telefónicas y enviar mensajes.
Por lo tanto, el polimorfismo es comparable a eso. Poly significa numeroso y morph denota diferentes formas. Por lo tanto, el polimorfismo como un todo se refiere a algo con varias formas.
O “algo” que, dependiendo de las circunstancias, puede exhibir una variedad de comportamientos. En OOPS, el polimorfismo describe funciones con los mismos nombres pero comportamientos distintos. Alternativamente, una firma de función diferente con el mismo nombre de función (parámetros pasados a la función).
Ejemplo:
Aquí, podemos usar la variable animal para iterar a través de los objetos de Zebra y Rabbit, usando sus respectivos métodos de instancia. Como resultado, el comportamiento (color() y come()) tanto de la cebra como del conejo están representados aquí por una sola variable llamada animal. Por lo tanto, se adhiere a las reglas del polimorfismo.
Abstracción
Lo más probable es que utilice una computadora portátil, un teléfono o una tableta para leer este contenido. Mientras lo lee, presumiblemente también está tomando notas, subrayando pasajes clave y quizás almacenando alguna información en sus archivos personales.
Todo lo que puede ver cuando lee esto es una "pantalla" con los datos que se le muestran. Solo ve las teclas del teclado a medida que escribe, por lo que no tiene que preocuparse por las sutilezas internas, como que presionar una tecla puede hacer que esa palabra aparezca en la pantalla.
Alternativamente, cómo presionar un botón en su pantalla puede iniciar una nueva pestaña.
Por lo tanto, cualquier cosa que podamos observar en esta situación es abstracta. Solo podemos ver el resultado que está creando y no las complejidades internas (que realmente nos importan).
Similar a esto, la abstracción solo revela las funciones que todo posee mientras oculta cualquier implementación o detalles internos.
El objetivo principal de la abstracción es ocultar la información de fondo y cualquier implementación de datos extraños para que las personas solo vean lo que necesitan ver. Ayuda a gestionar la complejidad del código.
Ejemplo:
Aquí está presente una clase abstracta relacionada con el vehículo. Debido a que hereda de la clase abstracta ABC, es abstracto. Debido a que los métodos abstractos no están definidos o permanecen vacíos, la clase Vehicle tiene un método abstracto llamado no de ruedas que carece de definición.
Anticipan las clases que heredan las clases abstractas para dar la implementación del método.
Beneficios de los conceptos OOPS
- Al encapsular, se logra una alta seguridad y privacidad de datos.
- Flexibilidad para tener muchas versiones polimórficas de la misma clase.
- El alto nivel de complejidad del código se redujo mediante la abstracción.
- En lugar de examinar cientos de líneas de código para localizar un solo problema, la modularidad de la programación simplifica la depuración.
- La reutilización de código es causada por la herencia de una clase secundaria de las propiedades de la clase principal.
- La resolución efectiva de problemas es posible porque creamos clases que realizan las acciones necesarias para cada miniproblema. El siguiente problema se puede resolver aún más rápido ya que podemos reutilizar esas clases.
Conclusión
En conclusión, aprendimos sobre las ideas OOPS en Python, el paradigma de programación más popular en este momento.
Después de leer esto, debe haberse dado cuenta de que el paradigma OOPS trata por completo con la idea de clases y objetos. y conceptos OOPS como encapsulación, polimorfismo, herencia y abstracción.
Deje un comentario