INS240 – Lenguajes de Programación
Ingeniería en Computación e Informática
Programación orientada a objetos con Python
# Ejemplo:
class Ejemplo:
pass
Las clases de Python no tienen constructores o destructores explícitos.
Las clases de Python tienen algo similar a un constructor: el método __init__.
import math
class Complejo(Object):
def __init__(self, real, imaginario):
self.real = real
self.img = imaginario
def abs(self):
print math.sqrt((self.real*self.real)+(self.img*self.img))
import math
class Complejo(Object):
def __init__(self, real, imaginario):
self.real = real
self.img = imaginario
def abs(self):
print math.sqrt((self.real*self.real)+(self.img*self.img))
def main():
numero = Complejo(3,4)
numero.abs()
if __name__ == '__main__':
main()
import math
class Complejo(Object):
def __init__(self, real, imaginario):
self.real = real
self.img = imaginario
def abs(self):
print math.sqrt((self.real*self.real)+(self.img*self.img))
def main():
numero = Complejo(3,4)
numero.abs()
print numero.real
print numero.img
if __name__ == '__main__':
main()
class Instrumento:
pass
class Guitarra(Instrumento):
pass
class Bajo(Instrumento):
pass
Cuando creamos una clase derivada a partir de una clase padre y tenemos que la clase derivada proporciona o requiere su propio método __init__ , este método de la clase derivada debe llamar explícitamente el método __init__ de la clase base.
class Animal:
def __init__(self):
print "Animal creado"
def quien_soy(self):
print "Animal"
def comer(self):
print "Estoy comiendo"
class Perro(Animal):
def __init__(self):
Animal.__init__(self)
print "Perro creado"
def quien_soy(self):
print "perro"
def ladrar(self):
print "woof woof<!"
Diseñar un programa que modele acciones y atributos de un perrro. El programa debe permitir realizar las acciones de caminar, comer, ladrar y que tenga la posibilidad de enfermarse. Al crear un objeto perro debe comenzar con 1000 unidades de energía.
Las reglas para implementar estas acciones son las siguientes:
import random
class Perro():
def __init__(self, nombre, edad, energia):
self.nombre = nombre
self.edad = edad
self.energia = energia
def caminar(self):
if self.energia < 0:
print(self.nombre, "Esta muerto :C", "no puede caminar")
else:
self.energia = self.energia - 200
print(self.nombre, "Esta caminando, energia actual =", self.energia)
def comer(self):
if self.energia < 0:
print(self.nombre, "Esta muerto :C", "no puede comer")
else:
self.energia = self.energia + 300
print(self.nombre, "Esta comiendo, energia actual =", self.energia)
def ladrar(self):
if self.energia < 0:
print(self.nombre, "Esta muerto :C", "no puede ladrar")
else:
self.energia = self.energia - 100
print(self.nombre, "Esta ladrando, energia actual =", self.energia)
def enfermarse(self):
if self.energia < 0:
print(self.nombre, "Esta muerto :C", "no puede enfermarse")
else:
self.energia = self.energia - random.randint(1, self.energia)
print(self.nombre, "Esta enfermo, energia actual =", self.energia)
def __str__(self):
return self.nombre