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

Python中同时使用显式参数与**kwargs的运行问题咨询

问题1解答

  • 没有输出name和age的原因:在Python的函数参数规则中,**kwargs只会捕获没有被显式声明的关键字参数之外的剩余参数。你在func_print中已经显式定义了name和age两个参数,所以传入的kwargs_input里的name、age会优先匹配到这两个显式参数,剩余的postcode才会被放入**kwargs变量中,最终传给print_kwargs的只有postcode,自然不会打印出name和age。
  • 该需求可以实现,只需要把显式声明的name和age手动传入print_kwargs即可,修改后的代码示例:
def func_print(name="lolo", age=56, **kwargs):
    # 手动传递name、age和剩余kwargs到打印函数
    print_kwargs(name=name, age=age, **kwargs)

修改后运行代码即可得到你预期的三个字段的输出。

问题2解答

输出中的None是函数默认返回值导致的:Python中所有没有显式写return语句的函数,执行完成后默认会返回None。你最后一行代码print(func_print(**kwargs_input))会先执行func_print打印出参数,再把func_print的返回值(也就是默认的None)打印出来,就出现了额外的None。
如果不需要输出None,把最后一行改为直接调用函数即可:

# 去掉外层print
func_print(**kwargs_input)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:54:04