Update Python Ofensivo
This commit is contained in:
1 parent
54f7024e20
commit
3402445513
11 files changed
+152
No files matched your search
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user