Hola Platzinautas en este tutorial les mostrare como funcionan las clases, objetos y métodos ya que este concepto me costo bastante entenderlo pero después de buscar distintos conceptos en Internet logre entenderlo e hice un ejemplo que creo que esta lo bastante detallado.
Las clases nos permiten definir los atributos y el comportamiento , mediante métodos, de los objetos de un programa.
Los atributos definen las características propias del objeto y modifican su estado. Son datos asociados a las clases y a los objetos creados a partir de ellas.
De ello, se deducen los dos tipos de atributos o de variables existentes: variables de clase y variables de instancia (objetos).
Los métodos son bloques de código (o funciones) de una clase que se utilizan para definir el comportamiento de los objetos.
Para crear instancias de una clase se llama a la clase por su propio nombre pasando los argumentos que requiera el método constructor init si existe.
El método constructor init se ejecuta automaticamente cada vez que se crea un objeto (instancia) y sirve para inicializar las variables de instancias.
Tanto para acceder a los atributos como para llamar a los métodos se utiliza el método denominado de notación de punto que se basa en escribir el nombre del objeto o de la clase seguido de un punto y el nombre del atributo o del método con los argumentos que procedan: Objeto.atributo, Clase.variable de clase, Objeto.método y Objeto.método([Atributo]) .
Ahora mostraremos un ejemplo en código explicado detalladamente como se crean los objetos y como se llaman a los métodos y atributos.
classFamilia:
integrantes = 0#Variables de Clase""" Método constructor"""def__init__(self, nombre, edad, ocupacion):
self.nombre = nombre #Variable de instancia
self.edad = edad #Variable de instancia
self.ocupacion = ocupacion
Familia.integrantes += 1"""Métodos"""defmostrar_nombre_edad_ocupacion(self):return (self.nombre,self.edad,self.ocupacion)
defmostrar_ocupacion(self):return self.ocupacion
defmostrar_integrantes(self):return Familia.integrantes
defpresentarse(self):
print('Hola soy {} y tengo {} años.'.format(self.nombre,self.edad))
defedad_de_hermanos(self,pariente):
print('{} es el mayor por que tiene {} años y {} tiene {} años'.format(self.nombre, self.edad,pariente.nombre,pariente.edad))
"Creando Objetos para la Clase"
juan = Familia('Juan', 56, 'Papá')
ana = Familia('Ana', 50, 'Mamá')
camila = Familia('Camila', 13, 'Hija')
roberto = Familia('Roberto', 22, 'Hijo')
"Accediendo a atributos y llamando metodos"#Objeto.atributo
print(juan.nombre, juan.edad, juan.ocupacion)
print(ana.nombre)
print(camila.edad)
#Clase.Variable_de_clase
print(Familia.integrantes)
#Objeto.Metodo
juan.mostrar_nombre_edad_ocupacion
camila.mostrar_ocupacion
ana.presentarse
#Objeto.Metodo([Atributo])
roberto.edad_de_hermanos(camila)```