Подсказка типа для объекта, который можно использовать как подсказку типа.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Подсказка типа для объекта, который можно использовать как подсказку типа.

Сообщение Anonymous »

У меня есть следующий код

Код: Выделить всё

from typing import TypeVar, Type, overload

T = TypeVar('T')

@overload
def foo(bar: Type[T]) -> T:
...

@overload
def foo(bar: Type[T] | None) -> T | None:
...

def foo(bar: Type[T] | None) -> T | None:
# implementation goes here
...

class Bar:
...

bar = foo(Bar)
bar2 = foo(Bar | None)  # No overload variant of "foo" matches argument type "UnionType"
Как правильно вводить регистр подсказок для bar2?

Я пробовал другие: р>

Код: Выделить всё

Type[T | None]
, mypy говорит, что сигнатура перегруженной функции 2 никогда не будет сопоставлена: типы параметров сигнатуры 1 такие же или шире
удаление второй перегрузки (что приводит только к Type[T] разрешен), mypy говорит, что вариант перегрузки "foo" не соответствует типу аргумента "UnionType" (это означает, что вторая перегрузка в любом случае неверна)

Подробнее здесь: https://stackoverflow.com/questions/785 ... int-itself
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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