泛型,类 和实例
Generics, classes and instances
有什么概念可以结合泛型并概述 classes 和 class 的实例之间的关系吗?
有点人为的例子,但它表达了我的观点:
ManagedClass = TypeVar("ManagedClass")
class MyClass1:
def my_method(self):
...
def instantiate_class(cls: ManagedClass, *args, **kwargs) -> ManagedClass:
return cls(*args, **kwargs)
myclass1 = instantiate_class(MyClass1)
myclass1.my_method() # IDE Warning: Parameter 'self' unfulfilled
警告显然是正确的,但不是我所追求的。
有什么方法可以为类型检查器提供这个概念,其中输入类型是 class 而 return 类型是 class 的一个实例?
你想要这样的东西:
def instantiate_class(cls: Type[ManagedClass], *args, **kwargs) -> ManagedClass:
...
进一步说明:
# Type an instance of a class:
foo: Foo = Foo()
# Type a class itself:
foo: Type[Foo] = Foo
有什么概念可以结合泛型并概述 classes 和 class 的实例之间的关系吗?
有点人为的例子,但它表达了我的观点:
ManagedClass = TypeVar("ManagedClass")
class MyClass1:
def my_method(self):
...
def instantiate_class(cls: ManagedClass, *args, **kwargs) -> ManagedClass:
return cls(*args, **kwargs)
myclass1 = instantiate_class(MyClass1)
myclass1.my_method() # IDE Warning: Parameter 'self' unfulfilled
警告显然是正确的,但不是我所追求的。
有什么方法可以为类型检查器提供这个概念,其中输入类型是 class 而 return 类型是 class 的一个实例?
你想要这样的东西:
def instantiate_class(cls: Type[ManagedClass], *args, **kwargs) -> ManagedClass:
...
进一步说明:
# Type an instance of a class:
foo: Foo = Foo()
# Type a class itself:
foo: Type[Foo] = Foo