Menu
Coddy logo textTech

Clases vs Objetos

Parte de la sección Object Oriented Programming del Journey de Python de Coddy — lección 3 de 64.

Las clases y los objetos sirven para propósitos diferentes. Una clase es un plano, mientras que un objeto es lo que construyes a partir de ese plano.

Aquí hay un ejemplo de una clase:

class Dog:
	# compartido por todos los perros
    species = "Canis familiaris"

Ahora podemos acceder al atributo de clase directamente usando Dog.species donde Dog es el nombre de la clase:

print(f"Class species: {Dog.species}")
# Especie de la clase: Canis familiaris

Esto accede a los datos de la propia clase, no de ningún objeto específico.

Ahora exploremos cómo funciona en los objetos. Crea objetos a partir de la clase Dog:

dog1 = Dog()
dog2 = Dog()

Los objetos pueden tener atributos individuales que las clases no pueden:

dog1.name = "Nicky"
dog1.breed = "Siberian Husky"

dog2.name = "Teemon" 
dog2.breed = "Shu'ali"

Compara lo que las clases y los objetos pueden hacer:

print(f"Object 1: {dog1.name} is a {dog1.breed}")
print(f"Object 2: {dog2.name} is a {dog2.breed}")
print(f"Both share class attribute: {Dog.species}")

Salida:

Object 1: Nicky is a Siberian Husky
Object 2: Teemon is a Shu'ali
Both share class attribute: Canis familiaris

Diferencia clave: La clase Dog define lo que todos los perros tienen en común, mientras que los objetos dog1 y dog2 representan perros específicos e individuales con propiedades únicas.

challenge icon

Desafío

Fácil

Completa el código para crear una clase Student y dos objetos de estudiante. Agrega diferentes nombres y calificaciones a cada estudiante.

  • student.py: Aquí es donde definirás tu clase Student.
  • driver.py: Archivo de ejecución principal que importará y utilizará tu clase Student:

    Completa el código para crear una clase Student y dos objetos de estudiante. Agrega diferentes nombres y calificaciones a cada estudiante.

    El nombre de student1 es "Alice" con la calificación "A".

    El nombre de student2 es "Bob" con la calificación "B".

Hoja de referencia

Una clase es un plano que define atributos y comportamientos compartidos. Un objeto es una instancia creada a partir de esa clase con propiedades individuales.

Define una clase:

class Dog:
    # Atributo de clase - compartido por todas las instancias
    species = "Canis familiaris"

Accede a los atributos de clase directamente:

print(Dog.species)  # Canis familiaris

Crea objetos a partir de una clase:

dog1 = Dog()
dog2 = Dog()

Agrega atributos individuales a los objetos:

dog1.name = "Nicky"
dog1.breed = "Siberian Husky"

dog2.name = "Teemon"
dog2.breed = "Shu'ali"

Los objetos pueden acceder tanto a sus atributos individuales como a los atributos de clase:

print(f"{dog1.name} is a {dog1.breed}")  # Atributos individuales
print(f"Species: {Dog.species}")          # Atributo de clase

Pruébalo tú mismo

# Importar la clase Student
from student import Student

# TODO: Crear dos objetos de estudiante


# TODO: Añadir atributos a student1


# TODO: Añadir atributos a student2


# Imprimir la información del estudiante
print(f"{student1.name} has grade {student1.grade} at {Student.school}")
print(f"{student2.name} has grade {student2.grade} at {Student.school}")
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Object Oriented Programming