我正在尝试降低代码的复杂性,并使用 Scrutinizer 来测量这些值。在我的代码中,大部分复杂性都是由于验证造成的,那么我该如何改进它们呢?
class gestionRegister:
#VALIDA LA 1 SECCION DEL FORMULARIO EN EL QUE PIDE LOS DATOS PERSONALES
def formulario1(page, nombre, apellido, cedula, numTelefono, correo, ubicacion, nivelUser, tipoCorreo, codigoTelefono, tipoCedula, formulario, contenedor1, contenedor2):
#ARREGLOS
arregloCedula = f"{tipoCedula.value}-{cedula.value}"
arregloCorreo = f"{correo.value}{tipoCorreo.value}"
arregloTelefono = f"{codigoTelefono.value}-{numTelefono.value}"
global nuevoLider
if (nombre.value == "") or (apellido.value == "") or (cedula.value == "") or (numTelefono.value == "") or (correo.value == "") or (ubicacion.value == "") or (nivelUser.value == None) or (tipoCorreo.value == None) or (codigoTelefono.value == None) or (len(nombre.value) in range(1, 3)) or (len(apellido.value) in range(1, 4)) or (len(cedula.value) in range(1, 7)) or (len(numTelefono.value) in range(1, 7)) or (len(ubicacion.value) in range(1, 3)):
if nombre.value == "":
nombre.error_text = mensaje.campoFaltante
page.update()
if apellido.value == "":
apellido.error_text = mensaje.campoFaltante
page.update()
if cedula.value == "":
cedula.error_text = mensaje.campoFaltante
page.update()
if numTelefono.value == "":
numTelefono.error_text = mensaje.campoFaltante
page.update()
if correo.value == "":
correo.error_text = mensaje.campoFaltante
page.update()
if ubicacion.value == "":
ubicacion.error_text = mensaje.campoFaltante
page.update()
if nivelUser.value == None:
nivelUser.error_text = mensaje.campoFaltante
page.update()
if tipoCorreo.value == None:
tipoCorreo.error_text = mensaje.campoFaltante
page.update()
if codigoTelefono.value == None:
codigoTelefono.error_text = mensaje.campoFaltante
page.update()
if len(nombre.value) in range(1, 3):
nombre.error_text = "Minimo de caracteres 3"
page.update()
if len(apellido.value) in range(1, 4):
apellido.error_text = "Minimo de caracteres 4"
page.update()
if len(cedula.value) in range(1, 7):
cedula.error_text = "Minimo de caracteres 7"
page.update()
if len(numTelefono.value) in range(1, 7):
numTelefono.error_text = "Numero de telefono no valido"
page.update()
if len(ubicacion.value) in range(1, 3):
ubicacion.error_text = "Minimo de caracteres 3"
page.update()
elif db.verificarUbicacion(ubicacion.value):
page.snack_bar = SnackBar(content=Text("Esta ubicacion ya esta en uso"))
page.snack_bar.open = True
page.update()
elif db.verificarCedula(arregloCedula):
page.snack_bar = SnackBar(content=Text("Esta cedula ya esta ligada a un usuario"))
page.snack_bar.open = True
page.update()
elif db.verificarTelefono(arregloTelefono):
page.snack_bar = SnackBar(content=Text("Este numero de telefono ya esta asignado a un usuario"))
page.snack_bar.open = True
page.update()
elif db.verificarCorreo(arregloCorreo):
page.snack_bar = SnackBar(content=Text("Este correo ya esta en uso"))
page.snack_bar.open = True
page.update()
else:
nuevoLider = Lideres(nombre.value, apellido.value, arregloCedula, arregloTelefono, arregloCorreo, ubicacion.value, nivelUser.value)
rutas.animar(formulario, contenedor1, contenedor2, page)
这就是我构建其他验证的方式,那么最理想的方法是什么?
如果您给我一个例子,那将会很有帮助,这样我就可以指导自己并能够更改所有验证
神圣的 if 语句将它们放在一个 case 中:sob: