def extendList(val,list=[]):
list.append(val)
return list
list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a')
print('list1=%s'%list1)
print('list2=%s'%list2)
print('list3=%s'%list3)
#结果
list1=[10,'a']
list2=[123]
list3=[10,'a']
#默认参数定义的是可变数据类型时有坑。
#默认参数定义成可变数据类型后,如果调用函数时使用的是默认参数,那么使用的都是同一个内存空间,如果在某一次调用中进行了修改的话,那么以后再次调用此默认参数时参数已经被改变了。
#如果调用的时候传入了参数,那么就开辟新的内存空间,做的更改也是在新的空间中更改的,和默认参数的内存空间没有关系。
#默认参数一定要是不可变参数
def extendList(val,list=[]):
list.append(val)
return list
print('list1=%s'% extendList(10))
print('list2=%s'% extendList(123,[]))
print('list3=%s'% extendList('a'))
#结果
list1=[10]
list2=[123]
list3=[10,'a']
#和上面的是同种类型的,只不过上一种是全部执行完后才打印,这种情况是执行一次打印一次