Clases y objetos y Python

En Python, una clase es una plantilla para crear objetos. Las clases proporcionan una forma de encapsular datos y comportamientos relacionados y se utilizan para crear objetos que comparten un conjunto común de atributos y métodos.

Un objeto es una instancia de una clase y contiene datos y comportamientos específicos para ese objeto.

Sintaxis de una clase en Python

La sintaxis básica para definir una clase en Python es la siguiente:


class NombreClase:
    # Atributos de clase
    atributo_clase = valor

    # Métodos de clase
    def nombre_metodo(self, parametro1, parametro2):
        # Código del método
        return resultado

Lenguaje del código: Python (python)

Donde NombreClase es el nombre de la clase, atributo_clase es un atributo de clase y nombre_metodo es un método de clase.

Por ejemplo, aquí hay una clase Persona que tiene dos atributos de clase nombre y edad y dos métodos de clase presentarse y cumplir_anos:


class Persona:
    # Atributos de clase
    nombre = ""
    edad = 0

    # Métodos de clase
    def presentarse(self):
        print("Hola, mi nombre es", self.nombre)

    def cumplir_anos(self):
        self.edad += 1

Lenguaje del código: Python (python)

Creando objetos a partir de una clase

Para crear un objeto a partir de una clase, utilizamos la sintaxis de la siguiente manera:


objeto = NombreClase()

Lenguaje del código: Python (python)

Por ejemplo, para crear un objeto de la clase Persona, hacemos lo siguiente:


persona = Persona()
persona.nombre = "Juan"
persona.edad = 20

Lenguaje del código: Python (python)

Aquí estamos creando un objeto persona de la clase Persona, y estamos asignando valores a sus atributos nombre y edad.

Accediendo a atributos y métodos de un objeto

Podemos acceder a los atributos y métodos de un objeto utilizando la sintaxis de la siguiente manera:


objeto.atributo
objeto.metodo(parametros)

Lenguaje del código: Python (python)

Por ejemplo, para acceder al método presentarse del objeto persona, hacemos lo siguiente:


persona.presentarse()

Lenguaje del código: Python (python)

Esto imprimirá el mensaje “Hola, mi nombre es Juan”.

Para acceder al método cumplir_anos del objeto persona, hacemos lo siguiente:


persona.cumplir_anos()

Lenguaje del código: Python (python)

Esto incrementará la edad de la persona en uno.

La función __init__()

En Python, la función __init__() es un método especial que se utiliza para inicializar un objeto después de que ha sido creado a partir de una clase. La función __init__() se llama automáticamente cuando se crea un objeto de una clase, y se utiliza para configurar los atributos del objeto.

Sintaxis de la función __init__()

La sintaxis básica para definir la función __init__() en Python es la siguiente:


class NombreClase:
    def __init__(self, parametro1, parametro2, ...):
        self.atributo1 = parametro1
        self.atributo2 = parametro2
        ...

Lenguaje del código: Python (python)

Donde NombreClase es el nombre de la clase, self es una referencia al objeto actual y parametro1, parametro2, etc. son los parámetros que se pasan a la función __init__().

Por ejemplo, aquí hay una clase Persona que utiliza la función __init__() para inicializar los atributos nombre y edad:


class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad

Lenguaje del código: Python (python)

Creando objetos utilizando la función __init__()

Para crear un objeto utilizando la función __init__(), utilizamos la sintaxis de la siguiente manera:


objeto = NombreClase(parametro1, parametro2, ...)

Lenguaje del código: Python (python)

Por ejemplo, para crear un objeto de la clase Persona utilizando la función __init__(), hacemos lo siguiente:


persona = Persona("Juan", 20)

Lenguaje del código: Python (python)

Aquí estamos creando un objeto persona de la clase Persona, y estamos pasando los valores "Juan" y 20 a la función __init__() para inicializar los atributos nombre y edad.

Accediendo a los atributos del objeto:

Podemos acceder a los atributos del objeto utilizando la sintaxis de la siguiente manera:


objeto.atributo

Lenguaje del código: Python (python)

Por ejemplo, para acceder al atributo nombre del objeto persona, hacemos lo siguiente:


print(persona.nombre) # Juan

Lenguaje del código: Python (python)

Esto imprimirá el valor del atributo nombre del objeto persona, que es "Juan".

La función __str__()

En Python, la función __str__() es un método especial que se utiliza para definir la representación en forma de cadena de un objeto.

La función __str__() se llama automáticamente cuando se utiliza la función str() para un objeto, y se utiliza para devolver una cadena que representa el objeto.

Sintaxis de la función __str__():

La sintaxis básica para definir la función __str__() en Python es la siguiente:


class NombreClase:
    def __str__(self):
        return cadena

Lenguaje del código: Python (python)

Donde NombreClase es el nombre de la clase y cadena es la cadena que representa al objeto.

Por ejemplo, aquí hay una clase Persona que utiliza la función __str__() para definir su representación en forma de cadena:


class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad

    def __str__(self):
        return f"{self.nombre} ({self.edad} años)"

Lenguaje del código: Python (python)

En este ejemplo, estamos definiendo la función __str__() para la clase Persona. La función __str__() devuelve una cadena que representa al objeto, en este caso el nombre y la edad de la persona.

Utilizando la función __str__():

Para utilizar la función __str__() de un objeto, utilizamos la función str() de la siguiente manera:


cadena = str(objeto)

Lenguaje del código: Python (python)

Por ejemplo, para obtener la representación en forma de cadena de un objeto persona de la clase Persona, hacemos lo siguiente:


persona = Persona("Juan", 20)
cadena = str(persona)
print(cadena) # Juan (20 años)

Lenguaje del código: Python (python)

Aquí estamos creando un objeto persona de la clase Persona, y estamos utilizando la función str() para obtener su representación en forma de cadena.

Modificar propiedades de objetos

En Python, es posible modificar las propiedades de un objeto utilizando la sintaxis de la siguiente manera:


objeto.atributo = nuevo_valor

Lenguaje del código: Python (python)

Donde objeto es el objeto que se desea modificar y atributo es el nombre del atributo que se desea modificar.

Por ejemplo, si tenemos una clase Persona con los atributos nombre y edad, y queremos cambiar el nombre de una persona, podemos hacer lo siguiente:


class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad

persona = Persona("Juan", 20)
persona.nombre = "Pedro"

Lenguaje del código: Python (python)

En este ejemplo, estamos creando un objeto persona de la clase Persona, con el nombre "Juan" y la edad 20. Luego, estamos modificando el nombre de la persona a "Pedro" utilizando la sintaxis persona.nombre = "Pedro".

Eliminar propiedades de objeto

En Python, es posible eliminar propiedades de un objeto utilizando la palabra clave del y la sintaxis de la siguiente manera:


del objeto.atributo

Lenguaje del código: Python (python)

Donde objeto es el objeto del que se desea eliminar la propiedad y atributo es el nombre de la propiedad que se desea eliminar.

Por ejemplo, si tenemos una clase Persona con los atributos nombre y edad, y queremos eliminar el atributo nombre de una persona, podemos hacer lo siguiente:


class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad

persona = Persona("Juan", 20)
del persona.nombre

Lenguaje del código: Python (python)

En este ejemplo, estamos creando un objeto persona de la clase Persona, con el nombre "Juan" y la edad 20. Luego, estamos eliminando el atributo nombre del objeto persona utilizando la sintaxis del persona.nombre.

También es posible eliminar propiedades de un objeto desde un método de objeto. En este caso, utilizamos la referencia self para acceder al objeto y eliminar sus propiedades.

Por ejemplo, si queremos crear un método eliminar_nombre que elimine el atributo nombre de la persona, podemos hacer lo siguiente:


class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad

    def eliminar_nombre(self):
        del self.nombre

persona = Persona("Juan", 20)
persona.eliminar_nombre()

Lenguaje del código: Python (python)

En este ejemplo, estamos creando un objeto persona de la clase Persona, con el nombre "Juan" y la edad 20. Luego, estamos llamando al método eliminar_nombre en el objeto persona, lo que eliminará el atributo nombre del objeto.

Eliminar objetos

En Python, es posible eliminar objetos utilizando la palabra clave del y la sintaxis de la siguiente manera:


del objeto

Lenguaje del código: Python (python)

Donde objeto es el objeto que se desea eliminar.

Por ejemplo, si tenemos una clase Persona con los atributos nombre y edad, y queremos eliminar un objeto persona, podemos hacer lo siguiente:


class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad

persona = Persona("Juan", 20)
del persona

Lenguaje del código: Python (python)

En este ejemplo, estamos creando un objeto persona de la clase Persona, con el nombre "Juan" y la edad 20. Luego, estamos eliminando el objeto persona utilizando la sintaxis del persona.

Es importante tener en cuenta que cuando se elimina un objeto, todos los recursos que utiliza el objeto se liberan y no se pueden volver a utilizar. Además, cualquier referencia al objeto después de que se elimina se considera no válido y puede generar errores en el programa.

Curso de HTML Desde Cero

Inscríbete Ahora