Uso un controlador de excepciones personalizado con API rápida:
class CustomException(Exception): def __init__(self, err_message: str): self.err_message = err_message @app.exception_handler(CustomException) async def custom_exception_handler(request: Request, exc: CustomException): return JSONResponse(content={"error": exc.err_message})Pycharm puso la 'solicitud: Solicitud' como una advertencia débil:
''El valor de 'solicitud' del parámetro no se usa'' ya que no se usa en el código.
Sin embargo, si elimino el parámetro, obtengo un error de API rápida al ejecutar el código. Así que me pregunto si esto es un 'error' de PyCharm, si podemos llamarlo de esa manera.
TL;DR: Usas el _ como un reemplazo del nombre o un prefijo
Responder:
Si no deshabilita la advertencia como se sugiere en los comentarios, se considera una mala práctica deshabilitar las advertencias porque existen por algún motivo. Un mejor enfoque es hacer un análisis de causa raíz, comprender la advertencia buscando en Google por qué y encontrar un cambio de código adecuado que lo elimine.
Trabajando con linters en general, algunas veces será posible pensar que no hay forma de corregir una advertencia o una sugerencia que no sea hacer que aparezca otra. Pero está llegando allí: debe elegir una solución que mejore la legibilidad y el mantenimiento del código sin romper más reglas o el software real.
En general, en python hay algunos métodos que requerirán parámetros incluso si no los usa porque la infraestructura anterior que los usa espera recibir un método con una determinada plantilla de firma. Por ejemplo, al definir funciones lambda sin servidor, se espera que tenga un event y un context , pero es posible que no tenga ninguna información relevante en el evento entrante o el contexto de ejecución para usar.
Tienes que aprender a descartar parámetros mientras los mantienes. Para eso usas el
_como reemplazo del nombre o un prefijo
def lambda_example(event, context): """This raises a warning ⚠️""" print(event) def second_example(event,_): """This does not ✔️""" print(event) def third_example(_event,_context): """This does not either ✔️""" print("this does not care about it's parameters")