En Python, todo es un objeto. Los números, las cadenas, los DataFrames e incluso las funciones son objetos. En concreto, todo con lo que trabajas en Python tiene una clase, un plano asociado que funciona por debajo.
El enfoque orientado a objetos es especialmente útil cuando tu código implica interacciones complejas entre muchos objetos. En código real de producción, las clases pueden tener docenas de atributos y métodos con lógica complicada, pero la estructura subyacente es la misma que en la clase más simple.
Las clases son como un plano de los objetos: describen los posibles comportamientos y estados que puede tener cualquier objeto de un cierto tipo. Por ejemplo, si dices: "toda persona cliente tendrá un número de teléfono y un email, y podrá hacer y cancelar pedidos", ¡acabas de definir una clase! Así puedes hablar de los clientes de forma unificada. Luego, un objeto Customer concreto no es más que una realización de esa clase con un estado particular.
Cómo identificar clases en Python
En Python, todo es un objeto. Los números, las cadenas, los DataFrames e incluso las funciones son objetos. En concreto, todo con lo que trabajas en Python tiene una clase, un plano asociado que funciona por debajo. La existencia de estas interfaces unificadas es lo que permite usar, por ejemplo, cualquier DataFrame de la misma manera.
Puedes llamar a type() sobre cualquier objeto de Python para averiguar su clase. Por ejemplo, la clase de un array de numpy se llama en realidad ndarray (de n-dimensional array).
Las clases incorporan información sobre el estado y el comportamiento. En Python, la información de estado está contenida en los atributos y la de comportamiento en los métodos.
Atributos y métodos
Toma un array de numpy: ¡ya has estado usando algunos de sus métodos y atributos!
Por ejemplo, todo array de numpy tiene un atributo "shape" al que puedes acceder indicando el nombre del array seguido de un punto y shape.
Si quieres aprender más sobre programación orientada a objetos en Python, echa un vistazo a este vídeo de nuestro curso Object-Oriented Programming in Python.
Aborda los fundamentos de la Programación Orientada a Objetos (POO) en Python: explora las clases, los objetos, los métodos de instancia, los atributos y ¡mucho más!
Descubre cómo escribir funciones en Python reutilizables y eficientes. Domina los parámetros, las sentencias return y temas avanzados como las funciones lambda. Organiza mejor tu código con main() y otras buenas prácticas.
Introdúcete en las estructuras de datos de Python: aprende más sobre tipos de datos y estructuras de datos primitivas y no primitivas, como cadenas, listas, pilas, etc.
Aprende sobre los conjuntos en Python: qué son, cómo crearlos, cuándo usarlos, funciones incorporadas y su relación con las operaciones de la teoría de conjuntos.
En este tutorial, aprenderás todo sobre las cadenas de Python: trocearlas y encadenarlas, manipularlas y darles formato con la clase Formatter, cadenas f, plantillas y ¡mucho más!
Explora el análisis de datos con Python. Los DataFrames de Pandas facilitan la manipulación de tus datos, desde la selección o sustitución de columnas e índices hasta la remodelación de tus datos.
El enfoque orientado a objetos es especialmente útil cuando tu código implica interacciones complejas entre muchos objetos. En código real de producción, las clases pueden tener docenas de atributos y métodos con lógica complicada, pero la estructura subyacente es la misma que en la clase más simple.
Las clases son como un plano de los objetos: describen los posibles comportamientos y estados que puede tener cualquier objeto de un cierto tipo. Por ejemplo, si dices: "toda persona cliente tendrá un número de teléfono y un email, y podrá hacer y cancelar pedidos", ¡acabas de definir una clase! Así puedes hablar de los clientes de forma unificada. Luego, un objeto Customer concreto no es más que una realización de esa clase con un estado particular.
Cómo identificar clases en Python
En Python, todo es un objeto. Los números, las cadenas, los DataFrames e incluso las funciones son objetos. En concreto, todo con lo que trabajas en Python tiene una clase, un plano asociado que funciona por debajo. La existencia de estas interfaces unificadas es lo que permite usar, por ejemplo, cualquier DataFrame de la misma manera.
Puedes llamar a
type()sobre cualquier objeto de Python para averiguar su clase. Por ejemplo, la clase de un array denumpyse llama en realidadndarray(de n-dimensional array).Las clases incorporan información sobre el estado y el comportamiento. En Python, la información de estado está contenida en los atributos y la de comportamiento en los métodos.
Atributos y métodos
Toma un array de
numpy: ¡ya has estado usando algunos de sus métodos y atributos!Por ejemplo, todo array de
numpytiene un atributo "shape" al que puedes acceder indicando el nombre del array seguido de un punto y shape.Estado <--> atributos
También tiene métodos como
maxyreshape, a los que se accede igualmente con el punto.Comportamiento <--> métodos
Crea tu primera clase
En este ejemplo, crearás una clase vacía
Employee. Después crearás un objetoempde la claseEmployeellamando aEmployee().Prueba a imprimir el atributo
.namedel objetoempen la consola. ¿Qué ocurre?Pruébalo tú mismo.
Si quieres aprender más sobre programación orientada a objetos en Python, echa un vistazo a este vídeo de nuestro curso Object-Oriented Programming in Python.
Este contenido está extraído del curso Object-Oriented Programming in Python de DataCamp, impartido por Aliaksandra Yarosh.
Échale un ojo también al tutorial de programación orientada a objetos (OOP) en Python de DataCamp.