muy basico, algo de herencia
zako
ezako en yahoo.es
Vie Oct 15 19:21:57 CEST 2004
On Fri, Oct 15, 2004 at 12:00:14PM -0500, jtempo wrote:
> si tengo un clase
>
> class Persona(object):
> def __init__ (self, nombre, apellido):
> self.Nombre= Nombre
> self.Apellido=Apellido
>
> def NombreCompleto(self):
> return "%s, %s" % (self.Apellido, self.Nombre)
>
> si hago
> var= Persona('Juan','Perez')
> var.NombreCompleto() # me devuelve 'Perez, Juan'
>
> Ahora deseo hacer una clase 'hija' de esta y agregarle un par de
> propiedades HorasTrabajadas y PrecioPorHora
>
> class Empleado(Persona)...
> def Sueldo
> sueldo=HorasTrabajadas*PrecioPorHora
> return sueldo
>
> Cómo sigue, no consigo hacerlo funcionar, quiero agregar esos atributos
> (HorasTrabajadas y PrecioPorHora), perdonen que sea muy basico, per o
> estoy muy atascado con esto y no consigo resolverlo gracias de Antemano.
Si Sueldo es un metodo de la clase Empleado deberia ser:
def Sueldo(self):
....
Si las propiedades que quieres agregar a Empleado son datos miembros deberías
modificar el constructor de la clase Empleados a:
def __init__(self, nombre,apellido, HorasTrabajadas, PrecioPorHora):
self.HorasTrabajadas = HorasTrabajadas
self.PrecioPorHora = PrecioPorHora
Persona.__init__(self, nombre, apellido)
Los datos miembro tambien los puedes generar en cualquier funcion no son
necesidad exclusiva del constructor. Sin añadir un nuevo constructor a
Empleado podrias modificar Sueldo asi:
def Sueldo(self, HorasTrabajadas, PrecioPorHora):
self.HorasTrabajadas = HorasTrabajadas
self.PrecioPorHora = PrecioPorHora
sueldo=self.HorasTrabajadas*self.PrecioPorHora
return sueldo
Bueno espero q te sirva (y no haya metido la pata xD). Saludos,
zako
Más información sobre la lista de distribución Python-es