Update Python Ofensivo

This commit is contained in:
Manuel Vergara 2023-12-24 08:54:53 +01:00
parent 54f7024e20
commit 3402445513
11 changed files with 152 additions and 0 deletions

View 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)

View 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)

View 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)

View 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)