下列这段程序的打印结果是?( ) def demo(item,lis=[]): lis=[] lis.append(item) return lis print(demo('a'),end='') print(demo('b'))
【喵呜刷题小喵解析】:在Python中,函数参数中的默认参数值只在函数定义时计算一次,而不是每次调用函数时都重新计算。因此,在函数`demo`中,`lis=[]`只在函数定义时计算一次,后续的函数调用中`lis`的初始值都是这个已定义过的列表,而不是每次调用时都重新创建一个新的空列表。所以,第一个`demo('a')`函数调用后,`lis`中只有一个元素`'a'`,然后返回这个列表。在第二个`demo('b')`函数调用时,`lis`已经是包含`'a'`的列表,所以再添加`'b'`,返回包含`'a'`和`'b'`的列表。因此,打印结果应该是`['a']['b']`,选项B正确。