Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!

Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount

Clases y Objetos


Los objetos son una encapsulación de variables y funciones en una sola entidad. Los objetos obtienen sus variables y funciones de las clases. Las clases son esencialmente una plantilla para crear tus objetos.

Una clase muy básica se vería algo así:

class MyClass:
    variable = "blah"

    def function(self):
        print("This is a message inside the class.")

Explicaremos por qué tienes que incluir ese "self" como un parámetro un poco más adelante. Primero, para asignar la clase (plantilla) anterior a un objeto, harías lo siguiente:

class MyClass:
    variable = "blah"

    def function(self):
        print("This is a message inside the class.")

myobjectx = MyClass()

Ahora la variable "myobjectx" contiene un objeto de la clase "MyClass" que contiene la variable y la función definidas dentro de la clase llamada "MyClass".

Accediendo a Variables del Objeto

Para acceder a la variable dentro del objeto recién creado "myobjectx" harías lo siguiente:

class MyClass:
    variable = "blah"

    def function(self):
        print("This is a message inside the class.")

myobjectx = MyClass()

myobjectx.variable

Por ejemplo, lo siguiente imprimiría la cadena "blah":

class MyClass:
    variable = "blah"

    def function(self):
        print("This is a message inside the class.")

myobjectx = MyClass()

print(myobjectx.variable)

Puedes crear múltiples objetos diferentes que sean de la misma clase (tengan las mismas variables y funciones definidas). Sin embargo, cada objeto contiene copias independientes de las variables definidas en la clase. Por ejemplo, si definimos otro objeto con la clase "MyClass" y luego cambiamos la cadena en la variable anterior:

class MyClass:
    variable = "blah"

    def function(self):
        print("This is a message inside the class.")

myobjectx = MyClass()
myobjecty = MyClass()

myobjecty.variable = "yackity"

# Entonces imprime ambos valores
print(myobjectx.variable)
print(myobjecty.variable)

Accediendo a Funciones del Objeto

Para acceder a una función dentro de un objeto, utilizas una notación similar a la de acceder a una variable:

class MyClass:
    variable = "blah"

    def function(self):
        print("This is a message inside the class.")

myobjectx = MyClass()

myobjectx.function()

Lo anterior imprimiría el mensaje, "This is a message inside the class."

init()

La función __init__(), es una función especial que se llama cuando la clase está siendo iniciada. Se utiliza para asignar valores en una clase.

class NumberHolder:

   def __init__(self, number):
       self.number = number

   def returnNumber(self):
       return self.number

var = NumberHolder(7)
print(var.returnNumber()) #Prints '7'

Ejercicio

Tenemos una clase definida para vehículos. Crea dos vehículos nuevos llamados car1 y car2. Establece que car1 sea un convertible rojo valorado en $60,000.00 con el nombre de Fer, y que car2 sea una camioneta azul llamada Jump valorada en $10,000.00.

# define the Vehicle class class Vehicle: name = "" kind = "car" color = "" value = 100.00 def description(self): desc_str = "%s is a %s %s worth $%.2f." % (self.name, self.color, self.kind, self.value) return desc_str # your code goes here # test code print(car1.description()) print(car2.description()) # define the Vehicle class class Vehicle: name = "" kind = "car" color = "" value = 100.00 def description(self): desc_str = "%s is a %s %s worth $%.2f." % (self.name, self.color, self.kind, self.value) return desc_str # your code goes here car1 = Vehicle() car1.name = "Fer" car1.color = "red" car1.kind = "convertible" car1.value = 60000.00 car2 = Vehicle() car2.name = "Jump" car2.color = "blue" car2.kind = "van" car2.value = 10000.00 # test code print(car1.description()) print(car2.description()) #test_output_contains('Fer is a red convertible worth $60000.00.') #test_output_contains('Jump is a blue van worth $10000.00.') success_msg("Great job!")

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!

Previous Tutorial Next Tutorial Take the Test
Copyright © learnpython.org. Read our Terms of Use and Privacy Policy