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']
posted @ 2012-03-22 10:00  MindMac  阅读(2214)  评论(0编辑  收藏  举报