Python - programación orientada a objetos¶
La Programación Orientada a Objetos (POO) es un paradigma de programación basado en el concepto de objeto. En el contexto de la POO, los objetos son entidades que poseen:
Estado: implementado con un conjunto de variables llamadas propiedades.
Comportamiento: implementado con un conjunto de funciones llamadas métodos.
Los objetos se agrupan en clases. Todos los objetos de una clase contienen los mismos métodos y propiedades. Una clase puede verse como una plantilla o “machote” a partir de la cual se crean objetos. A un objeto creado a partir de una clase se le llama también una instancia de esa clase.
# Definición de la clase cuentaBancaria
class cuentaBancaria:
# Propiedades
propietario = ""
balance = 0
# Métodos
# Constructor de la clase: crea nuevas instancias e inicializa las propiedades
def __init__(self, propietario, balance):
self.propietario = propietario
self.balance = balance
# Método para realizar depósitos
def depositar(self, monto):
self.balance = self.balance + monto
# Método para realizar retiros
def retirar(self, monto):
self.balance = self.balance - monto
# Método para imprimir información
def imprimirInformacion(self):
print("Propietario: " + self.propietario + ", Balance: " + str(self.balance))
Una vez definida una clase, pueden declararse objetos o instancias de esta. Las instancias pueden invocar métodos de la clase mediante la notación:
<instancia>.<método>
A continuación, se presentan algunos ejemplos de instancias de la clase cuentaBancaria y de llamados a sus métodos.
# Instancia cuenta01
cuenta01 = cuentaBancaria("Juan Pérez", 1000)
cuenta01.depositar(5000)
cuenta01.imprimirInformacion()
Propietario: Juan Pérez, Balance: 6000
# Instancia cuenta02
cuenta02 = cuentaBancaria("María Pérez", 10000)
cuenta02.depositar(15000)
cuenta02.retirar(24000)
cuenta02.imprimirInformacion()
Propietario: María Pérez, Balance: 1000
Objetos y clases predefinidas de Python¶
Todos los datos de un programa en Python se representan mediante objetos o por relaciones entre objetos. Los tipos de datos corresponden a las clases de los objetos.
# Clase int
print(type(234))
<class 'int'>
# Clase float
print(type(10.3))
<class 'float'>
# Clase bool
print(type(True))
<class 'bool'>
# Clase list
print(type([True, 23, 20.6, (1, 2, 3)]))
<class 'list'>
El que un dato sea un objeto, implica que además de su valor tiene un conjunto de operaciones asociadas (métodos) que se aplican mediante operadores (ej. +, -, *, %) o funciones (ej. len(), type()). Tanto los operadores como las funciones pueden aplicarse en varias clases. Por ejemplo, el operador + se usa para int, float, str, list y otras clases; len() se usa también en varios tipos de datos.