-
-
Save douglascamata/998435 to your computer and use it in GitHub Desktop.
Seres humanos comuns e a reprodução desenfreada orientada a objetos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#encoding: utf-8 | |
class Humano(object): | |
"""Human Being""" | |
def __init__(self, nome, pai=None, mae=None): | |
print "alguem 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 = %(vivo)s | |
Filhos = %(filhos)s | |
Civil = %(civil)s | |
Morte = %(morte)s | |
""" % self.__dict__ | |
def nascer(self): | |
from datetime import datetime | |
self.nascimento = datetime.now().strftime('%d/%m/%Y %H:%M:%S') | |
self.vivo = 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.vivo = False | |
self.morte = datetime.now().strftime('%d/%m/%Y %H:%M:%S') | |
print "%s: E o meu fim \n" % self.nome | |
@property | |
def solteiro(self): | |
return self.civil == "Solteiro" | |
solteira=solteiro | |
@property | |
def esta_vivo(self): | |
return self.vivo | |
esta_viva=esta_vivo | |
@property | |
def casado(self): | |
return self.civil == "Casado" | |
casada=casado | |
def __add__(self, other): | |
print "%s e %s: Vamos ter um bebe \n" % (self.nome, other.nome) | |
homem, mulher = (self, other) if isinstance(self, Homem) else (other, self) | |
if homem.esta_vivo: | |
homem.morrer() | |
if mulher.solteira: | |
mulher.casar() | |
self.filhos += 1 | |
other.filhos += 1 | |
self.filho = Filho(self.nome[:3]+other.nome[2:], | |
other.nome, | |
self.nome | |
) | |
print self.perfil(),"\n",other.perfil() | |
return self.filho | |
class Filho(Humano): | |
pass | |
class Mulher(Humano): | |
pass | |
class Homem(Humano): | |
pass | |
if __name__ == '__main__': | |
pai = Homem("Joao") | |
mae = Mulher("Maria") | |
filho = pai + mae | |
filha = mae + pai |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from humano import Homem, Mulher | |
pai = Homem("Joao") | |
mae = Mulher("Maria") | |
filho = pai + mae | |
filha = mae + pai |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
alguem fez besteira e colocou mais um ser Humano no mundo | |
Joao: Estou nascendo \o/ | |
Nome = Joao | |
Nascimento = 30/05/2011 01:52:28 | |
Vivo = True | |
Filhos = 0 | |
Civil = Solteiro | |
Morte = | |
alguem fez besteira e colocou mais um ser Humano no mundo | |
Maria: Estou nascendo \o/ | |
Nome = Maria | |
Nascimento = 30/05/2011 01:52:28 | |
Vivo = True | |
Filhos = 0 | |
Civil = Solteiro | |
Morte = | |
Joao e Maria: Vamos ter um bebe | |
Joao: E o meu fim | |
Maria: Que felicidade estou casando!!! :)) | |
alguem fez besteira e colocou mais um ser Humano no mundo | |
Joaria: Estou nascendo \o/ | |
Nome = Joaria | |
Nascimento = 30/05/2011 01:52:28 | |
Vivo = True | |
Filhos = 0 | |
Civil = Solteiro | |
Morte = | |
Nome = Joao | |
Nascimento = 30/05/2011 01:52:28 | |
Vivo = False | |
Filhos = 1 | |
Civil = Solteiro | |
Morte = 30/05/2011 01:52:28 | |
Nome = Maria | |
Nascimento = 30/05/2011 01:52:28 | |
Vivo = True | |
Filhos = 1 | |
Civil = Casado | |
Morte = | |
Maria e Joao: Vamos ter um bebe | |
alguem fez besteira e colocou mais um ser Humano no mundo | |
Marao: Estou nascendo \o/ | |
Nome = Marao | |
Nascimento = 30/05/2011 01:52:28 | |
Vivo = True | |
Filhos = 0 | |
Civil = Solteiro | |
Morte = | |
Nome = Maria | |
Nascimento = 30/05/2011 01:52:28 | |
Vivo = True | |
Filhos = 2 | |
Civil = Casado | |
Morte = | |
Nome = Joao | |
Nascimento = 30/05/2011 01:52:28 | |
Vivo = False | |
Filhos = 2 | |
Civil = Solteiro | |
Morte = 30/05/2011 01:52:28 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment