Аннотация ввода 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

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