Присвоение типа при создании класса в python - PullRequest
0 голосов
/ 23 сентября 2019

Я хочу установить тип в поле класса динамически (когда класс определен).

Я имею в виду - я определяю тип в определении класса и ожидаю, что этот тип будет использоваться для поля (кодобразец должен уточнить)

Есть ли способ сделать это с текущей системой набора текста?

from typing import Type


class FooV1:
    def do_sth(self):
        print('something was done')


class FooV2:
    def do_sth(self):
        print('something else was done')


class Bar:
    def __init__(self):
        self.foo = self.foo_cls()


class BarV1(Bar):
    foo_cls: Type = FooV1

    def blabla(self):
        self.foo.do_sth()
        self.foo = 'asdf'  # Mypy should complain about it


bar = BarV1()
bar.blabla()

Было бы здорово, если бы, например, VSCode мог видеть это, но я думаю, MyPy лучшийпроверьте, является ли это действительным.

...