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

Python函数定义中`*`符号的含义:warnings.warn文档标记解读

函数定义中*在warnings.warn里的含义

你已经清楚函数定义里单个*的基础作用,warnings.warn文档里的这个*,本质就是用来强制后续参数必须以关键字参数形式传入的分界线。

拿warnings.warn的实际函数签名举例:

def warn(message, category=None, stacklevel=1, *, source=None):
    # 函数内部实现

这里的*把参数分成了两部分:

  • 前面的message、category、stacklevel:既可以用位置参数传递,也可以用关键字参数传递
  • 后面的source:只能通过关键字参数传递,比如必须写成warn("警告信息", source=my_source),不能直接用位置参数传值

这么设计的好处:

  • 后续给函数新增关键字参数时,不会影响之前用位置参数调用的旧代码,避免兼容性问题
  • 让函数调用的意图更明确,一眼就能看出哪些是可选的关键字参数

内容的提问来源于stack exchange,提问作者Mate de Vita

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:04:59