0
def func(df_a: pd.DataFrame, df_b: pd.DataFrame) -> (pd.DataFrame, pd.DataFrame):

Pylance 建议使用两种解决方案来修改这条线。如果有任何显着差异,每种方法的优缺点是什么?

类型注释中不允许元组表达式

使用 Tuple[T1, ..., Tn] 表示元组类型或使用 Union[T1, T2] 表示联合类型

4

2 回答 2

2

它们的含义不同:

  • Tuple[A, B, C]意味着您的函数返回具有 ABC 数据类型的三元素元组:
def f() -> Tuple[str, int, float]:
    return 'hello', 1, 3.33
  • Union[A, B]意味着您的函数返回 A 或 B 数据类型的对象:
import random 

def f() -> Union[str, int]:
    if random.random() > 0.5:
        return 'hello'
    else:
        return 10

在您的情况下,您似乎想要使用Tuple[pd.DataFrame, pd.DataFrame].

于 2022-01-31T17:01:38.183 回答
1

联合类型在这里没有意义,因为类型是相同的。

如果您想指示正在返回一个元组,您可以Tuple[pd.DataFrame, pd.DataFrame]在较旧版本的 Python 或tuple[pd.DataFrame, pd.DataFrame]较新版本的 Python 中使用。请参阅此处了解更多信息。

于 2022-01-31T16:57:45.150 回答