Аннотация ввода Python для объекта, созданного с помощью метода классаPython

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

Сообщение Anonymous »

Вот фрагмент кода.

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

from typing import Generic, TypeVar, Union

T = TypeVar('T')

class Bar(object):
def __init__(self, blah: Union[int, str]) -> None:
self.blah = blah

class Foo(Generic[T]):

def __init__(self, bar: T) -> None:
self.bar = bar

@classmethod
def extract(cls, klass: T) -> 'Foo':
return cls(bar=klass(123))

foo = Foo.extract(Bar)
foo.bar # typing says "Any"

foo1 = Foo(Bar(123))
foo1.bar # typing says "Bar" as expected

Когда я пытаюсь создать объект с помощью метода класса, аннотация ввода не работает должным образом.
Снимок экрана аннотации не работает
Однако, если я создаю объект напрямую, он работает нормально.
Снимок экрана с рабочей аннотацией
Я использую VSCode с последней версией pylance и расширение Python при написании этого вопроса.
Пожалуйста, дайте мне знать, если это невозможно или я делаю что-то не так.
ввод объекта, созданного методом класса, для получения аннотации.

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

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

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

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

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

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

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