Skip to content

Instantly share code, notes, and snippets.

@CarMoreno

CarMoreno/Composicion.py

Last active Apr 13, 2020
Embed
What would you like to do?
Python | Programación Orientada a Objetos, ejemplos del articulo: https://carmoreno.com.co/python/2020/03/03/programacion-orientada-objetos-python-POO/
class PalancaCambio:
# Suponemos que el carro arranca en Neutro (cambio 0 para nosotros)
cambio_actual = 0
def __init__(self, numero_cambios = 4, color='Negro', peso='50gr'):
self.numero_cambios = numero_cambios
self.color = color
self.peso = peso
def subir_cambio(self):
self.cambio_actual = self.cambio_actual + 1
if (self.cambio_actual == self.numero_cambios):
print("No puedo subir mas cambios")
print(f"Palanca de cambio sube el cambio a {self.cambio_actual}")
def bajar_cambio(self):
self.cambio_actual = self.cambio_actual - 1
if (self.cambio_actual == 0):
print("No puedo bajar mas cambios")
print(f"Palanca de cambio baja el cambio a {self.cambio_actual}")
def __str__(self):
return f"Palanca de Cambio de {self.numero_cambios} velocidades"
class Vehiculo:
def __init__(self, marca, color, placa, modelo):
self.marca = marca
self.color = color
self.placa = placa
self.modelo = modelo
self.palanca_cambio = PalancaCambio()
def acelerar(self):
print(f"Soy {self.marca}, estoy acelerando!!")
def frenar(self):
print(f"Soy {self.marca}, estoy frenando!!")
def voltear(self, direccion):
print(f"Soy {self.marca}, estoy volteando a la {direccion}")
def __str__(self):
"""Este método nos servirá para ver una representación en cadena del objeto"""
return self.marca
class Carro (Vehiculo):
numero_llantas = 4
def tocar_claxon(self):
print(f"Soy {self.marca}, y estoy tocando el claxon!!")
class Motocicleta (Vehiculo):
numero_llantas = 2
def encender_con_patada(self):
print(f"Soy {self.marca} y estoy encendiendo con patada!!")
class Avion (Vehiculo):
numero_llantas = 32
def sacar_llantas(self):
print(f"Soy {self.marca} y estoy sacando las llantas!!")
def aterrizar(self):
print(f"Soy {self.marca} y estoy aterrizando!!")
# Creamos el objeto carro, Mazda 6.
obj_mazda = Carro('Mazda 6', 'Rojo', 'RED126', '2020')
print(obj_mazda)
# Establecemos a 8 el numero de cambios para este carro
# y el peso de la palanca de cambios en 25gr
obj_mazda.palanca_cambio.numero_cambios = 8
obj_mazda.palanca_cambio.peso = '25gr'
print(obj_mazda.palanca_cambio)
# Subimos un cambio
obj_mazda.palanca_cambio.subir_cambio()
# ------------------------------------------------------------------------
# Creamos el objeto Motocicleta, Honda CB 500
obj_honda = Motocicleta('Honda CB 500', 'Negro', 'XDR321', '2018')
print(obj_honda)
#Establecemos a 6 el numero de cambios para esta moto
obj_honda.palanca_cambio.numero_cambios = 6
print(obj_honda.palanca_cambio)
# Subimos un cambio
obj_honda.palanca_cambio.subir_cambio()
class PalancaCambio:
# Suponemos que el carro arranca en Neutro (cambio 0 para nosotros)
__cambio_actual = 0
def __init__(self, numero_cambios = 4, color='Negro', peso='50gr'):
# Los atributos son ahora privados
self.__numero_cambios = numero_cambios
self.__color = color
self.__peso = peso
# Getters y Setters
def get_numero_cambios(self):
return self.__numero_cambios
def set_numero_cambios(self, numero_cambios):
self.__numero_cambios = numero_cambios
def get_color(self):
return self.__color
def set_color(self, color):
self.__color = color
def get_peso(self):
return self.__peso
def set_peso(self, peso):
self.__peso = peso
# Fin Getters y Setters
def subir_cambio(self):
self.__cambio_actual = self.__cambio_actual + 1
if (self.__cambio_actual == self.__numero_cambios):
print("No puedo subir mas cambios")
print(f"Palanca de cambio sube el cambio a {self.__cambio_actual}")
def bajar_cambio(self):
self.__cambio_actual = self.__cambio_actual - 1
if (self.__cambio_actual == 0):
print("No puedo bajar mas cambios")
print(f"Palanca de cambio baja el cambio a {self.__cambio_actual}")
def __str__(self):
return f"Palanca de Cambio de {self.__numero_cambios} velocidades"
class Vehiculo:
def __init__(self, marca, color, placa, modelo):
self._marca = marca
self._color = color
self._placa = placa
self._modelo = modelo
self._palanca_cambio = PalancaCambio()
def _acelerar(self):
print(f"Soy {self._marca}, estoy acelerando!!")
def _frenar(self):
print(f"Soy {self._marca}, estoy frenando!!")
def _voltear(self, direccion):
print(f"Soy {self._marca}, estoy volteando a la {direccion}")
def __str__(self):
"""Este método nos servirá para ver una representación en cadena del objeto"""
return self._marca
class Carro (Vehiculo):
__numero_llantas = 4
def set_numero_llantas(self, numero_llantas):
self.__numero_llantas = numero_llantas
def get_numero_llantas(self):
return self.__numero_llantas
def tocar_claxon(self):
print(f"Soy {self._marca}, y estoy tocando el claxon!!")
class Motocicleta (Vehiculo):
__numero_llantas = 2
def set_numero_llantas(self, numero_llantas):
self.__numero_llantas = numero_llantas
def get_numero_llantas(self):
return self.__numero_llantas
def encender_con_patada(self):
print(f"Soy {self._marca} y estoy encendiendo con patada!!")
class Avion (Vehiculo):
__numero_llantas = 32
def set_numero_llantas(self, numero_llantas):
self.__numero_llantas = numero_llantas
def get_numero_llantas(self):
return self.__numero_llantas
def sacar_llantas(self):
print(f"Soy {self._marca} y estoy sacando las llantas!!")
def aterrizar(self):
print(f"Soy {self._marca} y estoy aterrizando!!")
# Creamos el objeto carro, Mazda 6.
obj_mazda = Carro('Mazda 6', 'Rojo', 'RED126', '2020')
print(obj_mazda)
# Establecemos a 8 el numero de cambios para este carro
# y el peso de la palanca de cambios en 25gr
obj_mazda._palanca_cambio.set_numero_cambios(8)
obj_mazda._palanca_cambio.set_peso('25gr')
print(obj_mazda._palanca_cambio)
# Subimos un cambio
obj_mazda._palanca_cambio.subir_cambio()
# ------------------------------------------------------------------------
# Creamos el objeto Motocicleta, Honda CB 500
obj_honda = Motocicleta('Honda CB 500', 'Negro', 'XDR321', '2018')
print(obj_honda)
#Establecemos a 6 el numero de cambios para esta moto
obj_honda._palanca_cambio.set_numero_cambios(6)
print(obj_honda._palanca_cambio)
# Subimos un cambio
obj_honda._palanca_cambio.subir_cambio()
class Vehiculo:
def __init__(self, marca, color, placa, modelo):
self._marca = marca
self._color = color
self._placa = placa
self._modelo = modelo
def _acelerar(self):
print(f"Soy {self._marca}, estoy acelerando!!")
def _frenar(self):
print(f"Soy {self._marca}, estoy frenando!!")
def _voltear(self, direccion):
print(f"Soy {self._marca}, estoy volteando a la {direccion}")
def __str__(self):
"""Este método nos servirá para ver una representación en cadena del objeto"""
return self._marca
class Carro (Vehiculo):
__numero_llantas = 4
def tocar_claxon(self):
print(f"Soy {self._marca}, y estoy tocando el claxon!!")
class Motocicleta (Vehiculo):
__numero_llantas = 2
def encender_con_patada(self):
print(f"Soy {self._marca} y estoy encendiendo con patada!!")
class Avion (Vehiculo):
__numero_llantas = 32
def sacar_llantas(self):
print(f"Soy {self._marca} y estoy sacando las llantas!!")
def aterrizar(self):
print(f"Soy {self._marca} y estoy aterrizando!!")
obj_mazda = Carro('Mazda 6', 'Rojo', 'RED126', '2020')
obj_renault = Carro('Renault Logan', 'Negro', 'FRE009', '2021')
obj_audi = Carro('Audi Q3', 'Blanco', 'DPK312', '2016')
obj_honda = Motocicleta('Honda CB 500', 'Negro', 'XDR321', '2018')
obj_yamaha = Motocicleta('Yamaha R10', 'Azul', 'GTR576', '2016')
obj_suzuky = Motocicleta('Suzuky VStrom 650', 'Gris', 'RET841', '2020')
obj_jet = Avion('Jet Privado', 'Blanco', 'G-DER4', '2014')
# El Mazda 6, va a voltear a la izquierda
obj_mazda._voltear('izquierda')
# El Audi Q3, va a voltear a la derecha
obj_audi._voltear('derecha')
# El Renault Logan va a acelerar
obj_renault._acelerar()
# ---------------------------------------------------------------
# La Honda va a encender con patada.
obj_honda.encender_con_patada()
# La Honda, va a voltear a la izquierda
obj_honda._voltear('izquierda')
# La Yamaha, va a voltear a la derecha
obj_yamaha._voltear('derecha')
# La Suzuky va a frenar
obj_suzuky._frenar()
# ----------------------------------------------
# El Jet acelera
obj_jet._acelerar()
# El Jet voltea a la derecha
obj_jet._voltear('derecha')
# El Jet saca las llantas
obj_jet.sacar_llantas()
# Y aterriza.
obj_jet.aterrizar()
class Vehiculo:
def __init__(self, marca, color, placa, modelo):
self.marca = marca
self.color = color
self.placa = placa
self.modelo = modelo
def acelerar(self):
print(f"Soy {self.marca}, estoy acelerando!!")
def frenar(self):
print(f"Soy {self.marca}, estoy frenando!!")
def voltear(self, direccion):
print(f"Soy {self.marca}, estoy volteando a la {direccion}")
def __str__(self):
"""Este método nos servirá para ver una representación en cadena del objeto"""
return self.marca
class Carro (Vehiculo):
numero_llantas = 4
def tocar_claxon(self):
print(f"Soy {self.marca}, y estoy tocando el claxon!!")
class Motocicleta (Vehiculo):
numero_llantas = 2
def encender_con_patada(self):
print(f"Soy {self.marca} y estoy encendiendo con patada!!")
class Avion (Vehiculo):
numero_llantas = 32
def sacar_llantas(self):
print(f"Soy {self.marca} y estoy sacando las llantas!!")
def aterrizar(self):
print(f"Soy {self.marca} y estoy aterrizando!!")
obj_mazda = Carro('Mazda 6', 'Rojo', 'RED126', '2020')
obj_renault = Carro('Renault Logan', 'Negro', 'FRE009', '2021')
obj_audi = Carro('Audi Q3', 'Blanco', 'DPK312', '2016')
obj_honda = Motocicleta('Honda CB 500', 'Negro', 'XDR321', '2018')
obj_yamaha = Motocicleta('Yamaha R10', 'Azul', 'GTR576', '2016')
obj_suzuky = Motocicleta('Suzuky VStrom 650', 'Gris', 'RET841', '2020')
obj_jet = Avion('Jet Privado', 'Blanco', 'G-DER4', '2014')
# El Mazda 6, va a voltear a la izquierda
obj_mazda.voltear('izquierda')
# El Audi Q3, va a voltear a la derecha
obj_audi.voltear('derecha')
# El Renault Logan va a acelerar
obj_renault.acelerar()
# ---------------------------------------------------------------
# La Honda va a encender con patada.
obj_honda.encender_con_patada()
# La Honda, va a voltear a la izquierda
obj_honda.voltear('izquierda')
# La Yamaha, va a voltear a la derecha
obj_yamaha.voltear('derecha')
# La Suzuky va a frenar
obj_suzuky.frenar()
# ----------------------------------------------
# El Jet acelera
obj_jet.acelerar()
# El Jet voltea a la derecha
obj_jet.voltear('derecha')
# El Jet saca las llantas
obj_jet.sacar_llantas()
# Y aterriza.
obj_jet.aterrizar()
class Carro:
def __init__(self, marca, color, placa, modelo):
# Propiedades
self.numero_llantas = 4
self.marca = marca
self.color = color
self.placa = placa
self.modelo = modelo
def acelerar(self):
print(f"Soy {self.marca}, estoy acelerando!!")
def frenar(self):
print(f"Soy {self.marca}, estoy frenando!!")
def voltear(self, direccion):
print(f"Soy {self.marca}, estoy volteando a la {direccion}")
def __str__(self):
"""Este método nos servirá para ver una representación en cadena del objeto"""
return self.marca
obj_mazda = Carro('Mazda 6', 'Rojo', 'RED126', '2020')
obj_renault = Carro('Renault Logan', 'Negro', 'FRE009', '2021')
obj_audi = Carro('Audi Q3', 'Blanco', 'DPK312', '2016')
# Miramos por consola cada objeto
print(obj_mazda)
print(obj_renault)
print(obj_audi)
# El Mazda 6, va a voltear a la izquierda
obj_mazda.voltear('izquierda')
# El Audi Q3, va a voltear a la derecha
obj_audi.voltear('derecha')
# El Renault Logan va a acelerar
obj_renault.acelerar()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.