class Humano(object):
def __init__(self, nombre):
self.nombre = nombre
def diHola(self):
'''Saludo de una persona'''
print(f'Hola, mi nombre es {self.nombre}.')
humano_j = Humano("Jose")
humano_j.diHola()
Hola, mi nombre es Jose.
humano_j.nombre = 'Javi' # Podemos renombrar los objetos de forma dinámica, fuera de la clase
humano_j.diHola()
Hola, mi nombre es Javi.
class Humano(object):
def __init__(self, nombre):
self.__nombre = nombre
def camina(self):
print(self.nombre + " está caminando")
def get_nombre(self):
return self.__nombre
def set_nombre(self, nombre):
self.__nombre = nombre
humano_a = Humano("Antonio")
print(humano_a.get_nombre())
Antonio
humano_a.set_nombre("Alex")
print(humano_a.get_nombre())
Alex
humano_a.nombre = "Ana" # no da error, pero no hace caso
print(humano_a.get_nombre())
Alex
__del__
¶class Robot:
'''Representa un Robot con un nombre'''
poblacion = 0 # una variable de clase cuenta el número de robots
def __init__(self,nombre):
'''Método constructor. Inicializa los datos.'''
self.nombre = nombre
print(f'\tInicializado {self.nombre}')
Robot.poblacion += 1 # cuando se inicializa un objeto la población aumenta
def __del__(self):
'''Eliminado el objeto'''
print(f'{self.nombre} se ha destruido.')
Robot.poblacion -= 1 # la población disminuye
if Robot.poblacion == 0:
print(f'{self.nombre} era el último.')
else:
print(f'Aún quedan {Robot.poblacion} robots trabajando.')
def diHola(self):
'''El robot saluda'''
print(f'Saludos, mi amo me llama {self.nombre}.')
def cuantos():
'''Muestra la población actual'''
print(f'Somos {Robot.poblacion} robots.')
droid1 = Robot('R2-D2') # Inicializando a R2-D2
Inicializado R2-D2
droid1.diHola() # Saludos, mi amo me llama R2-D2
Saludos, mi amo me llama R2-D2.
Robot.cuantos() # Somos 1 robot
Somos 1 robots.
droid2 = Robot('C-3P0') # Inicializado C-3P0
droid2.diHola() # Saludos, mi amo me llama C-3P0
Robot.cuantos() # Somos 2 robot
Inicializado C-3P0 Saludos, mi amo me llama C-3P0. Somos 2 robots.
print("Los robots han terminado su trabajo, por lo que serán destruidos.")
del droid1
del droid2
Robot.cuantos()
Los robots han terminado su trabajo, por lo que serán destruidos. R2-D2 se ha destruido. Aún quedan 1 robots trabajando. C-3P0 se ha destruido. C-3P0 era el último. Somos 0 robots.