«Ошибка returntype» в пилоне с ограничениями ковариации и типа параметровPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 «Ошибка returntype» в пилоне с ограничениями ковариации и типа параметров

Сообщение Anonymous »

В Python 3.13.3 я столкнулся с проблемой проверки типов с Pylance при использовании генериков с ограничениями типа и Asyncreateable . Вот фрагмент кода, который увеличивает ошибку: < /p>

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

from collections.abc import AsyncIterable

class Chunk: ...

class Foo[Dlt: Chunk | str]:
def run(self) -> AsyncIterable[Chunk]: ...

def process(self) -> AsyncIterable[Dlt]:
return self.run()  # ReturnType Error
Pylance сообщается о следующей ошибке для возврата self.run () line:

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

Expression of type "AsyncIterable[Chunk]" cannot be assigned to the return type "AsyncIterable[Dlt@Foo]"
"AsyncIterable[Chunk]" is incompatible with "AsyncIterable[Dlt@Foo]"
Type variable "_T_co@AsyncIterable" is covariant, so "Chunk" cannot be assigned to "Dlt@Foo"
Type "Chunk" cannot be assigned to type "Dlt@Foo" Pylance(reportReturnType)
< /code>

 Что я пробовал: < /h3>
Чтобы решить проблему, я попробовал следующие подходы, но ни один из них не разрешил ошибку: < /p>

 Изменить ограничение на один, например, класс. />  Переписывание универсального параметра с использованием typevar < /code> вместо синтаксиса PEP 695. < /li>
 С синтаксисом typevar < /code>:

 Включение ковариации или контрапроворицы для Dlt < /code>. Chunk | Вопросы: < /h3>

 Почему Pylance выражает эту ошибку, даже если dlt < /code> ограничен Chunk | str 
и run () Возвращает асинмиссируемый [chunk] ? /> < /ol>
Любые идеи, объяснения или альтернативные подходы высоко ценится! < /p>

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • «Ошибка returntype» в пилоне с ограничениями ковариации и типа параметров
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Ошибка ковариации и противоположности для возврата типа Ilist > [дублировать]
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Горячо использовать класс returnType, полученный посредством отражения?
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • .NET Maui Entry Control ReturnType Далее Не работает
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • .NET Maui Entry Control ReturnType Далее Не работает
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

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