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

Python用Optional标注参数仍提示必填 如何正确定义可选参数

原因说明

Optional 属于Python类型提示体系的语法,仅用于标注参数允许的取值范围,不会对函数的实际参数规则产生任何影响。你当前的写法仅代表url参数的合法取值为HttpUrl类型或者None,但由于没有设置默认值,该参数仍然是调用时必须传入的必填参数,因此会触发参数缺失的报错。

正确定义方式

要实现调用时可以不传该参数的效果,只需要给参数添加默认值None即可,修改后的函数定义如下:

def create_ads_task(
    template_id: int,
    ad_account_id: str,
    adset_ids: List[str],
    placements: Dict[str, str],
    locales: List[Locale],
    url: Optional[HttpUrl] = None,
) -> List[Dict[str, Union[str, int]]]:
    ...body...

修改后调用函数时如果不传url,该参数会自动被赋值为None,完全匹配「前端有时不传递该参数」的使用场景。

如果使用Python 3.10及以上版本,也可以用更简洁的联合类型写法替代Optional:

url: HttpUrl | None = None

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:36:04