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']