Update Python Ofensivo
This commit is contained in:
parent
54f7024e20
commit
3402445513
47
python-ofensivo/00_ejercicios/04_ejemplo_clase08.py
Normal file
47
python-ofensivo/00_ejercicios/04_ejemplo_clase08.py
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Clases con herencia y polimorfismo
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
class Animal:
|
||||||
|
|
||||||
|
def __init__(self, nombre):
|
||||||
|
|
||||||
|
self.nombre = nombre
|
||||||
|
|
||||||
|
|
||||||
|
def hablar(self):
|
||||||
|
|
||||||
|
# Definimos una salida de errror
|
||||||
|
raise NotImplementedError("La subclase debe implementar este método abstracto")
|
||||||
|
|
||||||
|
class Gato(Animal):
|
||||||
|
|
||||||
|
def hablar(self):
|
||||||
|
|
||||||
|
return f"¡miau!"
|
||||||
|
|
||||||
|
class Perro(Animal):
|
||||||
|
|
||||||
|
def hablar(self):
|
||||||
|
|
||||||
|
return f"¡guau!"
|
||||||
|
|
||||||
|
|
||||||
|
def hacer_hablar(objeto):
|
||||||
|
|
||||||
|
print(f"{objeto.nombre} dice {objeto.hablar()}")
|
||||||
|
|
||||||
|
|
||||||
|
gato = Gato("Lucas")
|
||||||
|
perro = Perro("Firulais")
|
||||||
|
vaca = Animal("Lola")
|
||||||
|
|
||||||
|
print(gato.hablar())
|
||||||
|
print(perro.hablar())
|
||||||
|
# print(vaca.hablar()) # Provocar error
|
||||||
|
|
||||||
|
hacer_hablar(gato)
|
||||||
|
hacer_hablar(perro)
|
||||||
|
|
36
python-ofensivo/00_ejercicios/04_ejemplo_clase09.py
Normal file
36
python-ofensivo/00_ejercicios/04_ejemplo_clase09.py
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Clases subclases y herencia
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
class Automovil:
|
||||||
|
|
||||||
|
def __init__(self, marca, modelo):
|
||||||
|
self.marca = marca
|
||||||
|
self.modelo = modelo
|
||||||
|
|
||||||
|
def describir(self):
|
||||||
|
|
||||||
|
return f"Marca: {self.marca}\nModelo: {self.modelo}\n"
|
||||||
|
|
||||||
|
|
||||||
|
class Coche(Automovil):
|
||||||
|
|
||||||
|
def describir(self):
|
||||||
|
return f"[+] Coche:\n [+] Marca: {self.marca}\n [+] Modelo: {self.modelo}\n"
|
||||||
|
|
||||||
|
class Moto(Automovil):
|
||||||
|
|
||||||
|
def describir(self):
|
||||||
|
return f"[+] Moto:\n [+] Marca: {self.marca}\n [+] Modelo: {self.modelo}\n"
|
||||||
|
|
||||||
|
def describir_vehiculo(vehiculo): # Polimorfismo
|
||||||
|
|
||||||
|
print(vehiculo.describir())
|
||||||
|
|
||||||
|
coche = Coche("Mazda", "MX5")
|
||||||
|
moto = Moto("Honda", "CBR")
|
||||||
|
|
||||||
|
describir_vehiculo(coche)
|
||||||
|
describir_vehiculo(moto)
|
46
python-ofensivo/00_ejercicios/04_ejemplo_clase10.py
Normal file
46
python-ofensivo/00_ejercicios/04_ejemplo_clase10.py
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Clases subclases y herencia
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
class Dispositivo:
|
||||||
|
|
||||||
|
def __init__(self, modelo):
|
||||||
|
|
||||||
|
self.modelo = modelo
|
||||||
|
|
||||||
|
def escanear_vulnerabilidades(self):
|
||||||
|
|
||||||
|
raise NotImplementedError("Este método debe ser definido para el resto de subclases existentes")
|
||||||
|
|
||||||
|
class Ordenador(Dispositivo):
|
||||||
|
|
||||||
|
def escanear_vulnerabilidades(self):
|
||||||
|
|
||||||
|
return f"[+] Análisis de vulnerabilidades concluido: Actualización de sowfware necesaria, múltiples desactualizaciones de software detectadas"
|
||||||
|
|
||||||
|
class Router(Dispositivo):
|
||||||
|
|
||||||
|
def escanear_vulnerabilidades(self):
|
||||||
|
|
||||||
|
return f"[+] Análisis de vulnerabilidades concluido: Múltiples puertos críticos abiertos, es recomendable cerrar estos puertos"
|
||||||
|
|
||||||
|
class TelefonoMovil(Dispositivo):
|
||||||
|
|
||||||
|
def escanear_vulnerabilidades(self):
|
||||||
|
|
||||||
|
return f"[+] Análisis de vulnerabilidades concluido: Múltipleas aplicaciones detectadas con permisos excesivos"
|
||||||
|
|
||||||
|
|
||||||
|
def realizar_escaneo(dispositivo):
|
||||||
|
|
||||||
|
print(dispositivo.escanear_vulnerabilidades())
|
||||||
|
|
||||||
|
pc = Ordenador("Dell XPS")
|
||||||
|
router = Router("TP-Link Archer C50")
|
||||||
|
movil = TelefonoMovil("Xiaomi Galaxy S21")
|
||||||
|
|
||||||
|
realizar_escaneo(pc)
|
||||||
|
realizar_escaneo(router)
|
||||||
|
realizar_escaneo(movil)
|
23
python-ofensivo/00_ejercicios/04_ejemplo_clase11.py
Normal file
23
python-ofensivo/00_ejercicios/04_ejemplo_clase11.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Sobeescribir el constructor de una clase con super
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
class A:
|
||||||
|
|
||||||
|
def __init__(self, x):
|
||||||
|
self.x = x
|
||||||
|
|
||||||
|
print(f"Valor de x: {self.x}")
|
||||||
|
|
||||||
|
class B(A):
|
||||||
|
|
||||||
|
def __init__(self, x, y):
|
||||||
|
self.y = y
|
||||||
|
# Forzar que se ejecute el constructor de A
|
||||||
|
super().__init__(x)
|
||||||
|
print(f"Valor de y: {self.y}")
|
||||||
|
|
||||||
|
b = B(2, 10)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user