首页 > 解决方案 > 使用序列的 type() 作为类型保留映射的构造函数会产生“意外参数”警告

问题描述

我有一个函数可以将一些映射转换应用于通用Sequence项目。因为我的输入可以是任何类型的Sequence( list,tuple等),所以我想动态返回Sequence与我的输入相同类型的 a 。

为此,我可以使用以下设置:

def bar(x: X) -> Y:
    ..

def foo(seq: Sequence[X]) -> Sequence[Y]:
    seq_type = type(seq)

    return seq_type(bar(x) for x in seq)

但是,我的 IDE (PyCharm) 抱怨生成器参数seq_typeUnexpected argument. 注意:这段代码可以正常工作并且完全符合我的要求,主要是这个警告让我想知道这是否是要走的路。

所以具体来说:我应该如何以 Pythonesque 方式保存我的序列类型,或者我应该在这里忽略我的 IDE?

标签: pythonpython-typing

解决方案


推荐阅读