Atributos
Parte de la sección Object Oriented Programming del Journey de Python de Coddy — lección 6 de 64.
Los atributos son datos o variables que pertenecen a una clase o a sus objetos. Almacenan información sobre el estado del objeto.
Hay dos tipos de atributos:
Atributos de clase - compartidos por todos los objetos de la clase:
class Student:
school_name = "Python Academy" # atributo de claseAtributos de instancia - únicos para cada objeto:
class Student:
school_name = "Python Academy"
def set_info(self, name, age):
self.name = name # atributo de instancia
self.age = age # atributo de instanciaCrea objetos de estudiante y establece sus datos individuales:
student1 = Student()
student2 = Student()
student1.set_info("Alice", 20)
student2.set_info("Bob", 22)Accede a los atributos de instancia (únicos para cada objeto):
print(student1.name) # Alice
print(student2.name) # Bob
print(student1.age) # 20Acceder a los atributos de clase (iguales para todos los objetos):
print(student1.school_name) # Python Academy
print(student2.school_name) # Python Academy
print(Student.school_name) # Python AcademySalida:
Alice
Bob
20
Python Academy
Python Academy
Python AcademyDiferencia clave: Los atributos de clase son compartidos por todos los objetos, mientras que los atributos de instancia son únicos para cada objeto. Usa self.attribute_name para los atributos de instancia y simplemente attribute_name para los atributos de clase.
Hoja de referencia
Los atributos son datos o variables que pertenecen a una clase o a sus objetos.
Atributos de clase - compartidos por todos los objetos de la clase:
class Student:
school_name = "Python Academy" # atributo de claseAtributos de instancia - únicos para cada objeto, definidos usando self:
class Student:
school_name = "Python Academy"
def set_info(self, name, age):
self.name = name # atributo de instancia
self.age = age # atributo de instanciaAcceder a los atributos de instancia:
student1 = Student()
student1.set_info("Alice", 20)
print(student1.name) # AliceAcceder a los atributos de clase:
print(student1.school_name) # Python Academy
print(Student.school_name) # Python AcademyPruébalo tú mismo
Esta lección no incluye un desafío de código.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Object Oriented Programming
1Fundamentos de la POO
Archivos externosIntroducción a la POOClases vs ObjetosEl parámetro selfMétodosAtributosMétodo constructor (__init__)Resumen - Calculadora simple4Herencia
Herencia básicaLa función super()Sobrescritura de métodosHerencia múltipleOrden de resolución de métodosResumen - Jerarquía de empleados7Métodos especiales
Introducción a los métodos mágicosSobrecarga de operadoresMétodos mágicos de contenedoresRepaso - Lista personalizada10Patrones de diseño Parte 1
Introducción a los patrones de diseñoPatrón SingletonPatrón FactoryPatrón ObserverPatrón Strategy2Decoradores
Introducción a los decoradoresDecorador propertyDecorador de métodos estáticosDecorador de métodos de clase5Polimorfismo
Sobreescritura de métodos revisitadaDuck TypingClases y métodos abstractosDiseño de interfacesResumen - Calculadora de figuras8Conceptos avanzados de POO
Composición vs. HerenciaMixinsMétodos estáticos y de claseDecoradores de claseGestores de contexto11Patrones de diseño, parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón Composite3Propiedades de clase
Variables de instancia vs de claseDecoradores de propiedadesAtributos privadosResumen - Gestor de cuentas bancarias