Python 使用列表作为函数默认值且为空
python函数中参数默认值为一个列表且为空时,该列表只初始化一次,而不是像其他程序,每次初始化都为空。
1: def printList(my_list=[]): 2: my_list.append('list') 3: print my_list 4: 5: printList() 6: printList() 7: printList()测试结果:
1: ['list'] 2: ['list', 'list'] 3: ['list', 'list', 'list']为了避免这种情况,可以使用如下方法:
1: def printList(my_list=None):2: if my_list is None:
3: my_list = [] 4: my_list.append('list') 5: print my_list 6: 7: printList() 8: printList() 9: printList()测试结果:
1: ['list'] 2: ['list'] 3: ['list']
浙公网安备 33010602011771号