Python Clases y objetos
Clases/Objetos de Python
Python es un lenguaje de programación orientado a objetos.
Casi todo en Python es un objeto, con sus propiedades y métodos.
Una clase es como un constructor de objetos o un "modelo" para crear objetos.
Crear una clase
Para crear una clase, use la palabra clave class
:
Ejemplo
Cree una clase llamada MyClass, con una propiedad llamada x:
class MyClass:
x = 5
Inténtalo tú mismo »
Crear objeto
Ahora podemos usar la clase llamada MyClass para crear objetos:
Ejemplo
Cree un objeto llamado p1 e imprima el valor de x:
p1 = MyClass()
print(p1.x)
Inténtalo tú mismo »
La función __init__()
Los ejemplos anteriores son clases y objetos en su forma más simple y no son realmente útiles en aplicaciones de la vida real.
Para comprender el significado de las clases, debemos comprender la función __init__() incorporada.
Todas las clases tienen una función llamada __init__(), que siempre se ejecuta cuando se inicia la clase.
Utilice la función __init__() para asignar valores a las propiedades del objeto u otras operaciones que sean necesarias cuando se crea el objeto:
Ejemplo
Cree una clase llamada Persona, use la función __init__() para asignar valores para nombre y edad:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John", 36)
print(p1.name)
print(p1.age)
Inténtalo tú mismo »
Nota: La función __init__()
se llama automáticamente cada vez que se utiliza la clase para crear un nuevo objeto.
La función __str__()
La función __str__() controla lo que se debe devolver cuando el objeto de clase se representa como una cadena.
Si la función __str__() no está configurada, se devuelve la representación de cadena del objeto:
Ejemplo
La representación de cadena de un objeto SIN la función __str__():
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John", 36)
print(p1)
Inténtalo tú mismo »
Ejemplo
La representación de cadena de un objeto CON la función __str__():
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name}({self.age})"
p1 = Person("John", 36)
print(p1)
Inténtalo tú mismo »
Métodos de objetos
Los objetos también pueden contener métodos. Los métodos en los objetos son funciones que pertenecen al objeto.
Creemos un método en la clase Persona:
Ejemplo
Inserte una función que imprima un saludo y ejecútela en el objeto p1:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
p1 = Person("John", 36)
p1.myfunc()
Inténtalo tú mismo »
Nota: El parámetro self
es una referencia a la instancia actual de la clase y se utiliza para acceder a variables que pertenecen a la clase.
El parámetro self
El parámetro self
es una referencia a la instancia actual de la clase y se utiliza para acceder a variables que pertenecen a la clase.
No es necesario que se llame self
, puedes llamarlo como quieras, pero tiene que ser el primer parámetro de cualquier función de la clase:
Ejemplo
Utilice las palabras mysillyobject y abc en lugar de self:
class Person:
def __init__(mysillyobject, name, age):
mysillyobject.name = name
mysillyobject.age = age
def myfunc(abc):
print("Hello my name is " + abc.name)
p1 = Person("John", 36)
p1.myfunc()
Inténtalo tú mismo »
Modificar propiedades del objeto
Puedes modificar propiedades en objetos como este:
Eliminar propiedades del objeto
Puede eliminar propiedades de objetos utilizando la palabra clave del
:
Eliminar objetos
Puedes eliminar objetos usando la palabra clave del
:
La declaración del pass
Las definiciones de class
no pueden estar vacías, pero si por alguna razón tiene una definición de class
sin contenido, colóquela la instrucción pass
para evitar recibir un error.