Ввод ограниченной оболочки isinstancePython

Программы на Python
Ответить
Anonymous
 Ввод ограниченной оболочки isinstance

Сообщение Anonymous »

У меня есть функция comma_separated_list_ex, которая сейчас реализована как таковая

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

def comma_separated_list_ex[T: Lexeme](self, typ: type[T] | tuple[type[T], ...], fin: type[Lexeme]) -> tuple[
list[T], Lexeme]:
...
Где Lexeme — это класс, имеющий несколько дочерних классов. Предполагается, что первый аргумент функции type ведет себя как ограниченная оболочка экземпляра, то есть type может быть подклассом Lexeme или кортежем подклассов Lexeme. Функция должна возвращать пару значений: список, элементы которого являются экземплярами типа или типов, переданных в тип; И последний обнаруженный токен (это значение не имеет особого отношения к этому вопросу). Точная реализация comma_separated_list_ex не должна иметь значения, но если это так, функцию можно найти в этом репозитории GitHub.
Проблема, с которой я столкнулся, заключается в том, что pycharm говорит, что comma_separated_list_ex(SomeLexemeSubclass, LexemeSubclass) верен, но выдает ошибку ввода для comma_separated_list_ex((SomeLexemeSubclass, AnotherLexemeSubclass), LexemeSubclass) очевидно, что предоставленные мной подсказки типов неверны. Описание ошибки

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

Expected type 'type[SomeLexemeSubclass] | tuple[type[SomeLexemeSubclass], ...]' (matched generic type 'type[T ≤: Lexeme] | tuple[type[T ≤: Lexeme], ...]'), got 'tuple[type[SomeLexemeSubclass], type[AnotherLexemeSubclass]]' instead
Будем благодарны за любую помощь.
Ответить

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

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

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

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

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