Skip to content

Instantly share code, notes, and snippets.

@rochacbruno
Created May 29, 2011 11:55
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save rochacbruno/997689 to your computer and use it in GitHub Desktop.
Save rochacbruno/997689 to your computer and use it in GitHub Desktop.
Seres humanos comuns e a reprodução desenfreada orientada a objetos
#--*-- coding: UTF-8 --*--
class Humano(object):
"""Human Being"""
def __init__(self, nome, pai=None, mae=None):
print "alguém fez besteira e colocou mais um ser Humano no mundo \n"
self.nome = nome
self.pai = pai
self.mae = mae
self.filhos = 0
self.morte = " "
self.civil = "Solteiro"
self.nascer()
def perfil(self):
return """
Nome = %(nome)s
Nascimento = %(nascimento)s
Vivo = %(vida)s
Filhos = %(filhos)s
Civil = %(civil)s
Morte = %(morte)s
""" % dict(**self.__dict__)
def nascer(self):
from datetime import datetime
self.nascimento = datetime.now().strftime('%d/%m/%Y %H:%M:%S')
self.vida = True
print "%s: Estou nascendo \o/ \n" % self.nome
print self.perfil()
def casar(self):
self.civil = "casado"
print "%s: Que felicidade estou casando!!! :)) \n" % self.nome
def morrer(self):
from datetime import datetime
self.vida = False
self.morte = datetime.now().strftime('%d/%m/%Y %H:%M:%S')
print "%s: É o meu fim \n" % self.nome
def __add__(self, other):
print "%s e %s: Vamos ter um bebe \n" % (self.nome, other.nome)
if isinstance(self, Mulher):
if self.civil == "Solteiro":
self.casar()
if other.vida:
other.morrer()
self.filhos += 1
other.filhos += 1
self.filho = Filho(self.nome[:3]+other.nome[2:],
other.nome,
self.nome
)
elif isinstance(self, Homem):
if self.vida:
self.morrer()
if other.civil == "Solteiro":
other.casar()
self.filhos += 1
other.filhos += 1
self.filho = Filho(self.nome[:3]+other.nome[2:],
self.nome,
other.nome
)
print self.perfil(),"\n",other.perfil()
return self.filho
class Filho(Humano):
pass
class Mulher(Humano):
pass
class Homem(Humano):
pass
from humano import Homem, Mulher
pai = Homem("Joao")
mae = Mulher("Maria")
filho = pai + mae
filha = mae + pai
>>> pai = Homem("Joao")
alguém fez besteira e colocou mais um ser Humano no mundo
Joao: Estou nascendo \o/
Nome = Joao
Nascimento = 29/05/2011 09:23:12
Vivo = True
Filhos = 0
Civil = Solteiro
Morte =
>>> mae = Mulher("Maria")
alguém fez besteira e colocou mais um ser Humano no mundo
Maria: Estou nascendo \o/
Nome = Maria
Nascimento = 29/05/2011 09:23:22
Vivo = True
Filhos = 0
Civil = Solteiro
Morte =
>>> filho = pai + mae
Joao e Maria: Vamos ter um bebe
Joao: É o meu fim
Maria: Que felicidade estou casando!!! :))
alguém fez besteira e colocou mais um ser Humano no mundo
Joaria: Estou nascendo \o/
Nome = Joaria
Nascimento = 29/05/2011 09:23:33
Vivo = True
Filhos = 0
Civil = Solteiro
Morte =
Nome = Joao
Nascimento = 29/05/2011 09:23:12
Vivo = False
Filhos = 1
Civil = Solteiro
Morte = 29/05/2011 09:23:33
Nome = Maria
Nascimento = 29/05/2011 09:23:22
Vivo = True
Filhos = 1
Civil = casado
Morte =
>>> filha = mae + pai
Maria e Joao: Vamos ter um bebe
alguém fez besteira e colocou mais um ser Humano no mundo
Marao: Estou nascendo \o/
Nome = Marao
Nascimento = 29/05/2011 09:23:47
Vivo = True
Filhos = 0
Civil = Solteiro
Morte =
Nome = Maria
Nascimento = 29/05/2011 09:23:22
Vivo = True
Filhos = 2
Civil = casado
Morte =
Nome = Joao
Nascimento = 29/05/2011 09:23:12
Vivo = False
Filhos = 2
Civil = Solteiro
Morte = 29/05/2011 09:23:47
>>>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment