Contents
3.11. 列表作为默认参数时的陷阱¶
3.11.1. 代码示例¶
#!/usr/bin/env python
#-*- coding:utf8 -*-
def test_list_arg(lst=[]):
"""
当lst第一次调用之后,会成为abc,lst在外部再次传入时,是带有参数的,默认lst=[]不生效
:param lst:
:return:
"""
lst.append("abc")
print(lst)
test_list_arg()
test_list_arg()
test_list_arg()
print("="*100)
def test_list_arg2(lst=None):
lst = [] if lst is None else lst
lst.append("abc")
print(lst)
test_list_arg2()
test_list_arg2()
test_list_arg2()
输出信息
['abc']
['abc', 'abc']
['abc', 'abc', 'abc']
====================================================================================================
['abc']
['abc']
['abc']