执行下面 Python 代码后,输出的结果是?( ) def func(x, y, 大args, z=10, 大大kwargs): return x + y + z + sum(args) + kwargs.get('m', 0) result = func(1, 2, 3, 4, z=5, m=6, n=7) print(result)
A:21
B:28
C:31
D:程序会报错
正确答案:A
答案解析
分析函数定义,参数顺序为位置参数x、y,接收额外位置参数的*args,具有默认值的keyword-only参数z,以及接收额外关键字参数的**kwargs。调用时传入1、2、3、4作为前四个实参,其中z被显式赋值为5,m=6和n=7作为关键字参数传入。根据Python参数传递机制,x接收1,y接收2,后续位置参数3和4被*args收集为元组,z使用关键字参数传入的5覆盖默认值,关键字参数m和n被**kwargs接收为字典。函数体内计算x + y + z,加上sum(args)对元组元素求和,再通过kwargs.get('m', 0)获取键m对应的值,未使用的n不影响结果。所有参数按对应规则解析并参与运算。
试卷来源:202606 CCF-GESP编程能力等级认证Python四级真题