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

Python函数如何设置可选且可传入任意数量的参数?

解决方案

直接用Python的可变位置参数语法即可,语法为*自定义参数名,可以同时满足「可选」和「接收任意数量参数」的要求,修改后的完整代码如下:

# 原代码函数名拼写错误keybaord已修正为keyboard
def make_cool_keyboard(keycaps_language, *rgb_colors):
    # *rgb_colors会把所有额外传入的位置参数打包成元组,不传则为空元组
    # 无需手动循环追加,直接转列表即可
    colors = list(rgb_colors)
    print("your keyboard has keycaps in the lanuguage of {} and has rgb colors of {}".format(keycaps_language, colors))

# 调用示例1:传入3个颜色参数,可正常执行
make_cool_keyboard('english','red','blue','yellow')
# 调用示例2:不传颜色参数,也可以正常执行
make_cool_keyboard('chinese')

原理解释

  • 函数定义时,在参数前加*前缀,就表示这个参数是可变位置参数:调用时所有匹配完前面必填参数后剩下的位置参数,都会被打包成一个元组赋值给该参数
  • 如果没有传入额外参数,可变位置参数的默认值是空元组,无需额外设置默认值,天然满足「可选」的需求

注意事项

  • 可变位置参数必须放在普通位置参数的后面,否则会出现语法错误
  • 一个函数里最多只能定义1个可变位置参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 19:54:03