Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

345
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda