Как получить тип вывода Pyright из проверки перечисления?Python

Программы на Python
Ответить
Anonymous
 Как получить тип вывода Pyright из проверки перечисления?

Сообщение Anonymous »

Могут ли типы быть связаны с перечислениями, чтобы Pyright мог определить тип на основе проверки равенства? (Без cast() или isinstance().)
from dataclasses import dataclass
from enum import Enum, auto

class Type(Enum):
FOO = auto()
BAR = auto()

@dataclass
class Foo:
type: Type

@dataclass
class Bar:
type: Type

item = next(i for i in (Foo(Type.FOO), Bar(Type.BAR)) if i.type == Type.BAR)
reveal_type(item) # How to have this be `Bar` instead of `Foo | Bar`?


Подробнее здесь: https://stackoverflow.com/questions/793 ... enum-check
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»