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

Python可选参数工作机制:为何func(1,2)返回1 2 10 100?

搞懂Python默认参数的匹配逻辑

嘿,我完全懂你被这个点卡壳的感觉!其实核心就是Python处理函数参数的规则,咱们一步步拆解清楚:

首先看你的函数定义:

def func(a, b, c=10, d=100): 
    print(a, b, c, d)

这里的参数被分成了两类:

  • 必填位置参数:a和b没有设置默认值,所以调用时必须按顺序给它们传值,Python会严格按照传入的顺序把值对应到这两个参数上。
  • 可选默认参数:c和d定义时指定了默认值10和100,如果调用时没给它们传值,Python就会自动用这个默认值来填充。

那你调用func(1,2)的时候,Python是这么匹配参数的:

  1. 把第一个传入的1对应到第一个参数a
  2. 把第二个传入的2对应到第二个参数b
  3. 发现你没给c传值,就用定义好的默认值10
  4. 同样,没给d传值,就用默认值100

所以最后输出就是1 2 10 100啦!

再给你举两个例子巩固理解:

  • 如果调用func(1,2,3),那c就会被你传入的3覆盖,输出是1 2 3 100
  • 如果调用func(1,2,d=200),这时候你用关键字指定了d的值,c还是用默认的10,输出就是1 2 10 200

总结一下:Python处理参数时,先按顺序匹配没有默认值的位置参数,剩下的可选参数如果没传值,就自动用定义时的默认值填充~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:41:15