Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

343
Views
¿Cómo hago para que Pylance ignore la posibilidad de Ninguno?

Me encanta la verificación de tipo Pylance.

Sin embargo, si tengo una variable var: Union[None, T] , donde T implementa foo , pylance arrojará un error en:

var.foo() ya que el tipo None no implementa foo .

Hay alguna manera de resolver esto? Una forma de decirle a Pylance "Esta variable es None a veces, pero en este caso estoy 100% seguro de que se asignará

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Hay muchas formas de obligar a un verificador de tipos a aceptar esto.



  1. Usar assert :

     from typing import Union def do_something(var: Union[T, None]): assert var is not None var.foo()

  2. Levanta alguna otra excepción :

     from typing import Union def do_something(var: Union[T, None]): if var is None: raise RuntimeError("NO") var.foo()

  3. Use una declaración if :

     from typing import Union def do_something(var: Union[T, None]): if var is not None: var.foo()

  4. Use typing.cast , una función que no hace nada en tiempo de ejecución pero obliga a un verificador de tipos a aceptar que una variable es de cierto tipo:

     from typing import Union, cast def do_something(var: Union[T, None]): var = cast(T, var) var.foo()

  5. Apague el verificador de tipos para esa línea :

     from typing import Union def do_something(var: Union[T, None]): var.foo() # type: ignore


Tenga en cuenta también que, si bien no hace ninguna diferencia en la forma en que un verificador de tipo interpreta su anotación de tipo (los dos son semánticamente idénticos), también puede escribir escribiendo typing.Union[T, None] como typing.Optional[T] , que podría decirse que es una sintaxis un poco más agradable. En Python> = 3.10 (o anterior si tiene from __future__ import annotations en la parte superior de su código), incluso puede escribir tipos de Union con el | operador, es decir, T | None

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!