Cómo crear una clase en Python (programación orientada a objetos)

Aprenda a crear una clase en Python. Domine el constructor __init__, los métodos de instancia, la palabra clave self y la creación de instancias de objetos.

Pruebe esta solución en el Editor

Descripción general

La programación orientada a objetos (OOP) es un poderoso paradigma que se utiliza para modelar entidades del mundo real, estructurar aplicaciones y promover la reutilización del código. En Python, todo es un objeto y las clases son los planos a partir de los cuales se crean los objetos individuales. Crear una clase le permite agrupar atributos de datos y funciones.

Para definir una clase, se utiliza la palabra clave `class` seguida del nombre de la clase (escrito convencionalmente en PascalCase). Dentro de la clase, el método más importante es el constructor: `__init__(self,...)`. Este método mágico especial se ejecuta automáticamente cuando crea una instancia de la clase, inicializando los atributos de datos iniciales del objeto.

El parámetro `self` representa la instancia específica de la clase que estás creando o modificando actualmente. Cada método de instancia dentro de la clase debe aceptar "self" como primer argumento. Los métodos de instancia son funciones definidas dentro de la clase que operan sobre los atributos del objeto, lo que permite una encapsulación limpia de la lógica.

Código y salida de ejecución

Este script demuestra la creación de una clase, la definición de propiedades, los métodos de instancia de clase y la creación de objetos.

create_class.py
Pruébelo en el editor
# 1. Defining a class
class User:
    def __init__(self, username, email):
        self.username = username
        self.email = email
        self.active = True  # Default attribute

    def get_info(self):
        status = "Active" if self.active else "Inactive"
        return f"User: {self.username} | Email: {self.email} | Status: {status}"

# 2. Instantiating objects of the class
user1 = User("codeguy", "guy@example.com")
user2 = User("pygirl", "girl@example.com")

# 3. Accessing attributes and invoking methods
print(user1.get_info())
print(user2.username, "has email", user2.email)
Salida terminal
User: codeguy | Email: guy@example.com | Status: Active
pygirl has email girl@example.com

Implementación paso a paso

  • Utilice la palabra clave class para declarar la plantilla de clase.
  • Defina el constructor __init__(self, ...) para configurar los atributos iniciales.
  • Agregue métodos de instancia que acepten self como primer parámetro para trabajar con el estado del objeto.
  • Llame a ClassName(...) para crear una instancia y crear una nueva instancia de objeto.

Preguntas frecuentes

¿Qué representa el autoparámetro?

Se refiere a la instancia específica del objeto que se crea o manipula. Es necesario vincular atributos a la instancia.

¿Puede una clase tener atributos que se comparten en todas las instancias?

Sí, estos son atributos de clase. Defínelos directamente debajo del encabezado de la clase (fuera de __init__) y accede a ellos usando ClassName.attribute.

Temas relacionados

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.