Programación orientada a objetos con Python
Cita con formato IEEE:
E. Bahit, "Programación orientada a objetos con Python", in
Python Aplicado, 4th ed., EBRC Publisher, 2022, pp.
267-278.
Cita con formato APA 7:
Bahit, E. (2022).
Programación orientada a objetos con Python. In Python
Aplicado (4th ed., pp. 267-278). EBRC Publisher.
Cita en línea:
(Bahit, 2022)
En esta sección se hará una breve introducción al paradigma de la programación orientada a objetos, aspectos más elementales y cómo estos han sido implementados por Python. No se abarcarán conceptos avanzados o teóricos relativos al pensamiento computacional aplicado al análisis de objetos.
Breve introducción a la programación orientada a objetos
Un paradigma de programación es aquello que define la forma en la que la estructura y los elementos de un programa se deben construir.
El paradigma de la programación orientada a objetos establece que un programa debe ser construido sobre la base de unos elementos que se denominan objetos.
Este paradigma propone la agrupación de datos y operaciones —relativas a esos datos—, en elementos que que los mantienen aislados del entorno.
Hasta aquí se ha visto cómo los datos (variables) y operaciones (funciones) se mantienen dispersas a lo largo de uno o más scripts. A partir de ahora, se verá que en la programación orientada a objetos estos datos y operaciones mantienen agrupados en estructuras de control denominadas clases.
De esta manera, mientras que en la programación estructurada un dato a y un dato b procesados mediante una operación c se veían de esta forma:
a = 25 b = 5 def c(a, b): return a * b result = c(a, b)
En la programación orientada a objetos se encapsulan de esta otra:
class X: a = 25 b = 5 def c(self): return self.a * self.b x = X() result = x.c()
Elementos y características de la programación orientada a objetos
La programación orientada a objetos define entonces, unos elementos y características que los lenguajes de programación que soportan este paradigma deben ofrecer. En lo sucesivo se explican estos elementos y características junto al código Python que los implementa.
Clases
Se define como clase a aquella estructura de control cuyo objetivo es definir los datos —denominados propiedades— y operaciones —denominadas métodos— necesarios para crear un objetos.
Métodos y propiedades
Los métodos son las operaciones definidas dentro de una clase mientras que las propiedades, los datos.
Un método se ve como una función pero dentro de la clase, mientras que una propiedad, como una variable.
class A: b = 15 c = 10 def d(self): return self.b * self.c
En el ejemplo anterior, A es una clase; b y
c son sus propiedades; y d, su único método.
self
es una característica particular de Python de la que
se hablará posteriormente.
Objetos
Se define como objeto a un conjunto de datos y operaciones encapsulados. Técnicamente, un objeto es la instancia de una clase (donde el término «instancia» se refiere a que la clase ha sido invocada).
En términos prácticos, un objeto es una variable cuyo valor es la instancia de una clase.
class A: pass a = A()
En el ejemplo previo, a es un objeto y A()
es
la instancia de la clase denominada A.
Polimorfismo
Se denomina polimorfismo a la característica que posibilita que un único objeto pueda estar formado por más de un tipo de datos.
En el siguiente ejemplo, se dice que a es polimórfico debido a que posee más de un tipo de datos:
class A: pass a = A() # "a" es un objeto polimórfico a.tipo_entero = 12 a.tipo_string = 'cadena de texto' a.tipo_boolean = False