以下函数的正确返回类型是什么?
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
提供任何自动补全代码。