list作为函数参数时需要注意“[ ]”和“None”的区别
这种写法,
如传进去列表则按传进去的列表操作,且改变原列表的值;
如不传进去列表,则按默认列表操作,这里注意函数中默认列表对于不传列表进去的情况是有叠加效应的。
读者可通过下面的例子仔细体会:
def add_fruits(fruit,fruit_list=[]):
fruit_list.append(fruit)
print(fruit_list)
fruit="apple"
add_fruits(fruit)
fruit="orange"
add_fruits(fruit)
fruits=["xxx"]
add_fruits("aaa",fruits)
print(fruits)
add_fruits("bbb")
输出:
['apple']
['apple', 'orange']
['xxx', 'aaa']
['xxx', 'aaa']
['apple', 'orange', 'bbb']
这种写法,
如传进去列表则按传进去的列表操作,且改变原列表的值;
如不传进去列表,则每次函数中都是默认为空列表进行操作。
读者可通过下面的例子仔细体会:
def add_fruits(fruit,fruit_list=None):
if fruit_list is None:
fruit_list=[]
fruit_list.append(fruit)
print(fruit_list)
fruit="apple"
add_fruits(fruit)
fruit="orange"
add_fruits(fruit)
fruits=["xxx"]
add_fruits("aaa",fruits)
print(fruits)
add_fruits("bbb")
输出:
['apple']
['orange']
['xxx', 'aaa']
['xxx', 'aaa']
['bbb']