假设我有一个通用的函数:
def foo(*args):
for arg in args:
print(arg)
如果我想给 *args
添加类型提示,根据PEP,我只需要指定一个参数的类型。
如果参数可以是任何类型,那该怎么办?下面两种方式有什么区别:
T = typing.TypeVar('T')
def foo(*args: T):
...
和
def foo(*args: Any):
...
据我所知,
TypeVar('T')
相当于“任意类型”,但是在变量参数为多种类型时是否适用呢?
TypeVar
,你可以建立类型之间的连接。只有TypeVar('T')
本身只意味着与Any
相同,def foo(*args: T) -> T
表示foo
返回与其输入相同的类型,这是无法用Any
来表达的… - decezeNone
,那么没有区别吗?如果是这样的话,我更喜欢使用Any
,因为对未来的读者来说它是不言自明的。 - user7811364TypeVar
没有任何意义。 - Samwise