执行下面 Python 代码后,输出的结果是?( ) def func(x, lst=[]): lst.append(x) return lst print(func(1), func(2), func(3))
A:[1] [2] [3]
B:[1] [1, 2] [1, 2, 3]
C:[3] [3] [3]
D:[1, 2, 3] [1, 2, 3] [1, 2, 3]
正确答案:D
答案解析
函数定义时,默认参数lst指向同一个列表对象。每次调用未传入lst时,均使用该默认对象。append方法修改原列表内容,导致多次调用间数据累积。返回值为被修改后的列表引用。print语句连续输出三次函数调用的返回结果,每次调用均基于前次对同一列表的修改。
试卷来源:202606 CCF-GESP编程能力等级认证Python四级真题