You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何修改函数参数使其同时支持str与DataFrame类型

解决方案

要让函数同时支持str和pandas.DataFrame类型入参,只需要调整类型注解为联合类型,同时在函数内部做类型分支处理即可,不同Python版本写法略有区别:

  • Python 3.10及以上版本:支持用|符号直接写联合类型,写法更简洁
import pandas as pd

def func(data: str | pd.DataFrame):
    # 分支判断入参类型,分别处理
    if isinstance(data, str):
        # 字符串入参对应的处理逻辑
        pass
    elif isinstance(data, pd.DataFrame):
        # DataFrame入参对应的处理逻辑
        pass
  • Python 3.9及更早版本:需要从标准库typing模块导入Union来定义联合类型
from typing import Union
import pandas as pd

def func(data: Union[str, pd.DataFrame]):
    # 分支判断入参类型,分别处理
    if isinstance(data, str):
        # 字符串入参对应的处理逻辑
        pass
    elif isinstance(data, pd.DataFrame):
        # DataFrame入参对应的处理逻辑
        pass

注意:类型注解仅用于静态类型检查,不会在运行时自动拦截不符合类型的入参,也不会自动适配处理逻辑,必须在函数内部通过isinstance()判断实际入参类型,编写对应分支的处理代码,才能保证两种类型的入参都能正常运行。

内容的提问来源于stack exchange,提问作者Talha Anwar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 19:27:16