反思 Custom Generic Class 方法中的 TypeVar

Reflect on TypeVar in Custom Generic Class method

考虑下面的代码。

>>> class A(typing.Generic[T]):
...     @classmethod
...     def foo(cls) -> None:
...         print(typing.get_args(cls))
...
>>> A[int].foo()
()
>>> typing.get_args(A[int])
(<class 'int'>,)

是否可以在A.foo() class方法中推断出存储在T中的具体类型?

这是一个相当通用的(原文如此)示例。一个真实世界的用例是实现一个通用构造函数,它调用 T 类型的构造函数或通用工厂。

针对此特定案例,typing 回购中存在 open 问题。