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!