具有多重继承的类工厂的正确类型提示是什么?

时间:2019-06-05 19:55:41

标签: python factory multiple-inheritance type-hinting

以下函数的正确返回类型是什么?

import typing

T = typing.TypeVar['T']
U = typing.TypeVar['U']


def class_factory(class_T: typing.Type[T], class_U: typing.Type[U]) -> ???:
    return type(class_T.__name__ + '_x_' + class_U.__name__,
                (class_T, class_U), {})

背景:我正在尝试将普通的python类T转换为Subject类(Subject与观察者模式相同)。我的想法是创建同时继承T和Subject的SubjectT类:

import typing
T = typing.TypeVar('T')

def create_subject(class_T: typing.Type[T]) -> ???:
    class result_class(Subject, class_T):
        def __setattr__(self, name, value):
            super().__setattr__(name, value)
            self.notify()   # notify observers of all changes
    return result_class  

这可行,但是我的IDE不为result_class提供任何自动补全代码。

0 个答案:

没有答案