muy basico, algo de herencia

Batista, Facundo FBatista en uniFON.com.ar
Vie Oct 15 19:13:09 CEST 2004


[jtempo]

#- 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.


Te refieres a algo así?

>>> class Persona(object):
	def __init__ (self, nombre, apellido):
		self.nombre = nombre
		self.apellido = apellido

	def nombreCompleto(self):
		return "%s, %s" % (self.apellido, self.nombre)

>>> p = Persona("juan", "perez")
>>> p.nombreCompleto()
'perez, juan'
>>> class Empleado(Persona):
	def __init__(self, nombre, apellido, horas, precio):
		self.horas = horas
		self.precio = precio
		Persona.__init__(self, nombre, apellido)
	def sueldo(self):
		return self.horas * self.precio

>>> e = Empleado("jose", "rodriguez", 50, 2.5)
>>> e.sueldo()
125.0
>>> e.nombreCompleto()
'rodriguez, jose'


Ten en cuenta que te convendría trabajar con Decimal
(http://www.python.org/dev/doc/devel/lib/module-decimal.html) si te vas a
meter con precios y sueldos.

Slds.

.	Facundo




Más información sobre la lista de distribución Python-es